public class SyntaxDom extends Object
構文定義と、その構文にそった文章を与え、文章を構文解析します。
得られる情報はorg.w3c.dom.Documentです。
構文定義法、入力解析法などの総合的な説明を パッケージ otsu.symphonieの説明 で行ってありますので、まずご覧ください。
標準的使い方
標準的な使い方は
の手順を踏みます。
// import org.w3c.dom.Document;SyntaxDomsyntax=new SyntaxDom(); syntax.readSyntaxFile("syntaxDef.sn","utf-8"); Document doc= syntax.parseFile("text.txt","utf-8");
Document化にあたりトークンテキストをタグ内の属性に入れるかタグで囲んだ文字列とするかなど の指定が可能となっています。
symphonieで用意されるその他の解析法
SyntaxConverterの他、symphonieには
(1)構文解析を行い要素毎にアプリケーションに情報を上げる
 SyntaxReader
(2)構文解析を行い、構文木文字列(XML/JSON)を得る
 SyntaxConverter
(3)ファイルを解析し構文木を表示するコマンド
 java -jar symphonie.jar syntax-check
(4)構文解析アプレット(試験中)
 SymphonieApp
などを用意してあります。。
| 修飾子とタイプ | フィールドと説明 | 
|---|---|
| SyntaxReader | sr構文解析機. | 
| コンストラクタと説明 | 
|---|
| SyntaxDom() | 
| 修飾子とタイプ | メソッドと説明 | 
|---|---|
| Document | parse(BufferedReader source_) | 
| Document | parse(BufferedReader source_,
     long option_) | 
| static Document | parse(String syntaxFileName_,
     String sourceFileName_,
     long option_)構文定義と、文章を与え、構文解析されたXML-Documentを得る. | 
| static Document | parse(SyntaxReader sr_)構文解析されたXML-Documentを得る. | 
| static Document | parse(SyntaxReader sr_,
     long option_)構文解析されたXML-Documentを得る. | 
| Document | parseFile(String sourceFileName_) | 
| Document | parseFile(String sourceFileName_,
         long option_) | 
| Document | parseFile(String sourceFileName_,
         String charSet_) | 
| Document | parseFile(String sourceFileName_,
         String charSet_,
         long option_) | 
| Document | parseString(String syntaxDef_) | 
| Document | parseString(String[] syntaxDef_) | 
| Document | parseString(String[] syntaxDef_,
           long option_) | 
| Document | parseString(String syntaxDef_,
           long option_) | 
| void | readResSyntaxFile(Class class_,
                 String fileName_)リソース上の構文定義ファイルを読む. | 
| void | readResSyntaxFile(Class class_,
                 String fileName_,
                 String charSet_)構文定義ファイルを読む. | 
| void | readResSyntaxFile(String fileName_)リソース上の構文定義ファイルを読む. | 
| void | readResSyntaxObjectFile(Class class_,
                       String fileName_)リソースから構文定義オブジェクトを読み込む. | 
| void | readResSyntaxObjectFile(String fileName_)リソースから構文定義オブジェクトを読み込む. | 
| void | readSyntax(BufferedReader br_)構文定義を読み込む | 
| void | readSyntaxFile(String fileName_)構文定義ファイルを読む. | 
| void | readSyntaxFile(String fileName_,
              String charSet_)構文定義ファイルを読む. | 
| void | readSyntaxObject(ObjectInputStream ois_)構文定義オブジェクトを読み込む | 
| void | readSyntaxObjectFile(String fileName_)構文定義オブジェクトを読み込む | 
| void | readSyntaxString(String syntaxDef_)構文定義文字列を読む | 
| void | readSyntaxString(String[] syntaxDef_)構文定義文字列を読む | 
public SyntaxReader sr
public void readSyntaxFile(String fileName_) throws Exception
fileName_ - 構文定義ファイルException - 読み込み/解析失敗public void readSyntaxFile(String fileName_, String charSet_) throws Exception
fileName_ - 構文定義ファイルcharSet_ - ファイルの文字コードException - 読み込み/解析失敗public void readResSyntaxFile(String fileName_) throws Exception
fileName_ - リソース上の構文定義ファイル名Exception - 読み込み/解析失敗public void readResSyntaxFile(Class class_, String fileName_, String charSet_) throws Exception
class_ - リソースの代表クラスfileName_ - リソース上の構文定義ファイル名charSet_ - ファイルの文字コードException - 読み込み/解析失敗public void readResSyntaxFile(Class class_, String fileName_) throws Exception
class_ - リソースの代表クラスfileName_ - リソース上の構文定義ファイル名Exception - 読み込み/解析失敗public void readSyntaxString(String syntaxDef_) throws Exception
syntaxDef_ - 構文定義記述Exception - 解析失敗public void readSyntaxString(String[] syntaxDef_) throws Exception
syntaxDef_ - 構文定義記述Exception - 解析失敗public void readSyntax(BufferedReader br_) throws Exception
br_ - 構文定義の媒体Exception - 読み込み/解析失敗public void readSyntaxObject(ObjectInputStream ois_) throws Exception
ois_ - 構文定義の媒体Exception - 読み込み/解析失敗public void readSyntaxObjectFile(String fileName_) throws Exception
fileName_ - 構文定義オブジェクトファイル名Exception - 読み込み/解析失敗public void readResSyntaxObjectFile(String fileName_) throws Exception
fileName_ - リソース内の構文定義オブジェクトファイル名Exception - 読み込み/解析失敗public void readResSyntaxObjectFile(Class class_, String fileName_) throws Exception
class_ - リソースの代表クラスfileName_ - リソース内の構文定義オブジェクトファイル名Exception - 読み込み/解析失敗public Document parseFile(String sourceFileName_) throws Exception
sourceFileName_ - 解析したい文章のファイル名
 文字コードはutf8です。Exception - 読み込み/解析失敗public Document parseFile(String sourceFileName_, long option_) throws Exception
sourceFileName_ - 解析したい文章のファイル名option_ - オプションException - 読み込み/解析失敗public Document parseFile(String sourceFileName_, String charSet_) throws Exception
sourceFileName_ - 解析したい文章のファイル名charSet_ - 文字セットException - 読み込み/解析失敗public Document parseFile(String sourceFileName_, String charSet_, long option_) throws Exception
sourceFileName_ - 解析したい文章のファイル名charSet_ - 文字セットoption_ - オプションException - 読み込み/解析失敗public Document parse(BufferedReader source_) throws Exception
source_ - 解析したい文章入力機Exception - 読み込み/解析失敗public Document parse(BufferedReader source_, long option_) throws Exception
source_ - 解析したい文章入力機option_ - オプションException - 読み込み/解析失敗public Document parseString(String syntaxDef_) throws Exception
syntaxDef_ - 解析したい文章Exception - 読み込み/解析失敗public Document parseString(String syntaxDef_, long option_) throws Exception
syntaxDef_ - 解析したい文章option_ - オプションException - 解析失敗public Document parseString(String[] syntaxDef_) throws Exception
syntaxDef_ - 解析したい文章Exception - 解析失敗public Document parseString(String[] syntaxDef_, long option_) throws Exception
syntaxDef_ - 解析したい文章option_ - オプションException - 解析失敗public static Document parse(String syntaxFileName_, String sourceFileName_, long option_) throws Exception
syntaxFileName_ - 構文定義ファイル名sourceFileName_ - 解析したい文章のファイル名option_ - オプションException - 読み込み/解析失敗public static Document parse(SyntaxReader sr_, long option_) throws Exception
 SyntaxReaderを使い構文解析されたXML-Document
 をえます。
 SyntaxReaderには予め、構文定義と文章をセットしておきます。
  // import otsu.symhonie.SyntaxReader;
  // import org.w3c.dom.Document;
  SyntaxReader sr= new SyntaxReader();
  sr.readSyntaxFile("syntax.sn");    // 構文定義
  sr.parse("sampleData.txt");        // 解析する入力分
  Document doc= SyntaxDom.parse(sr,(int)hiU.WITH_BEGIN_END); // 解析し、結果をDoucmentの形で得る
オプションではトークンに関する設定ができます。
(int)hiU.WITH_BEGIN_END : 
トークン文字列をタグで囲む(int)hiU.KEEP_REDUNDANCY  : 
トークン名とトークン文字列が同じでも文字列を表示する(WITH_BEGIN_ENDがある
場合無効です)(int)hiU.WITH_NAME  : 
構文名、トークン名をname属性にいれる。(int)(int)hiU.NO_ESCAPE  : 
&をエスケープさせない(予定:現在機能しません)hiU.NO_OPTION  : 
オプション無し| トークン形状 | オプション無 | (int)hiU.KEEP_REDUNDANCY | (int)hiU.WITH_BEGIN_END | 
| トークン固定形式 トークン名とテキストが同一 | <abc/> | <abc text="abc"/> | <abc>abc</abc> | 
| トークン名とテキストが不一致 または固定形式ではない | <abc text="xyz"/> | <abc text="xyz"/> | <abc>xyz</abc> | 
(int)hiU.WITH_NAME指定有り/無しでは次の
ような結果となります。
有り <token name="abc" text="xyz"/> 無し <abc text="xyz">
sr_ - 解析準備の整ったSyntaxReaderoption_ - オプションException - 読み込み/解析失敗public static Document parse(SyntaxReader sr_) throws Exception
 SyntaxReaderを使い構文解析されたXML-Document
 をえます。
 SyntaxReaderには予め、構文定義と文章をセットしておきます。
  // import otsu.symhonie.SyntaxReader;
  // import org.w3c.dom.Document;
  SyntaxReader sr= new SyntaxReader();
  sr.readSyntaxFile("syntax.sn");    // 構文定義
  sr.parse("sampleData.txt");        // 解析する入力分
  Document doc= SyntaxDom.parse(sr); // 解析し、結果をDoucmentの形で得る
sr_ - 解析準備の整ったSyntaxReaderException - 読み込み/解析失敗