All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.siisise.bnf.parser.BNFParser Maven / Gradle / Ivy

The newest version!
package net.siisise.bnf.parser;

import net.siisise.block.ReadableBlock;
import net.siisise.bnf.BNF;
import net.siisise.io.FrontPacket;

/**
 * BNF Parserの基本型。
 * @param  戻り型
 */
public interface BNFParser {

    BNF getBNF();

    T parse(ReadableBlock pac, Object ns);
    T parse(ReadableBlock pac);
    /**
     * 先頭一致解析.
     * 構築?
     * parse を直接呼び出す場合、findを一度通して判定が必要。
     * findのパラメータとして渡す場合、rulename で判定するため一致判定は不要。
     * というわけなので2つに分割する?
     * 
     * pacを解析、完了した部分を先頭から削除する
     * 先頭一致で解析するのでpacにデータが残る場合もある
     * 失敗した(一致しなかった)場合、pacは元の状態、戻り値はnullとなる
     *
     * @param pac 解析対象データ
     * @param ns user name space
     * @return 一致しない場合はnull、一致した場合は一致部分
     */
    T parse(FrontPacket pac, Object ns);

    /**
     * 先頭一致解析.
     * 構築?
     * parse を直接呼び出す場合、findを一度通して判定が必要。
     * findのパラメータとして渡す場合、rulename で判定するため一致判定は不要。
     * というわけなので2つに分割する?
     * 
     * pacを解析、完了した部分を先頭から削除する
     * 先頭一致で解析するのでpacにデータが残る場合もある
     * 失敗した(一致しなかった)場合、pacは元の状態、戻り値はnullとなる
     *
     * @param pac 解析対象データ
     * @return 一致しない場合はnull、一致した場合は一致部分
     */
    T parse(FrontPacket pac);
    T parse(String src, Object ns);
    T parse(String src);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy