テキストファイルから取得した端末をRascalの辞書に追加することはできますか?これは実行時に発生し、これを達成するための明白な方法はありません。私はむしろデータをRascalプロジェクトとは別に保管しています。たとえば、テキストファイルから国のリストを読み込んだ場合、これらを辞書に追加するにはどうすればよいですか(lexical
キーワードを使用します)。テキストファイルをRascalの辞書に追加する
0
A
答えて
1
データ依存バージョンのRascalパーサーでは、これはさらに簡単で高速ですが、まだリリースされていません。今の私はそうのように、ポスト解析フィルタで、一般的なルールを記述します:filter
機能がhello
のために可能なすべての導出を削除
rascal>set[str] lexicon = {"aap", "noot", "mies"};
set[str]: {"noot","mies","aap"}
rascal>lexical Word = [a-z]+;
ok
rascal>syntax LexiconWord = word: Word w;
ok
rascal>LexiconWord word(Word w) { // called when the LexiconWord.word rule is use to build a tree
>>>>>>> if ("<w>" notin lexicon)
>>>>>>> filter; // remove this parse tree
>>>>>>> else fail; // just build the tree
>>>>>>>}
rascal>[Sentence] "hello"
|prompt:///|(0,18,<1,0>,<1,18>): ParseError(|prompt:///|(0,18,<1,0>,<1,18>))
at $root$(|prompt:///|(0,64,<1,0>,<1,64>))
rascal>[Sentence] "aap"
Sentence: (Sentence) `aap`
rascal>
ので、パーサは、最終的にhello
にパースエラーが返されます。それは辞書に入っているaap
のためにそうしていません。もちろん、この種のフィルタリングを使って、面白く複雑な派生を行うことができます。人々はあいまいでない文法を書くことがあります。
フィルタリング関数が償却された一定時間内にある場合、このように解析およびフィルタリングは入力の長さに関して立方最悪ケース時間で行われます。文法が線形の場合、もちろんプロセス全体も線形です。
0
完全に異なる答えは、文法を動的に更新し、これからパーサーを生成することです。これは、そうのようなラスカルの内部文法表現に対して作動含む:
set[str] lexicon = {"aap", "noot", "mies"};
syntax Word = ; // empty definition
typ = #Word;
grammar = typ.definitions;
grammar[sort("Word")] = { prod(sort("Word"), lit(x), {}) | x <- lexicon };
newTyp = type(sort("Word"), grammar);
このニュータイプは、辞書の定義について具体化文法+型であり、これは今では同じように使用することができる。
import ParseTree;
if (type[Word] staticGrammar := newType) {
parse(staticGrammar, "aap");
}
は今、アルにこれを書かれた、二つのこと:
- 私たちは、動的パーサ生成をテストしていないので、これは未知のバグを誘発するかもしれないと思う、と
- 合理的なサイズのレキシコンでは、パーサはプログラミング言語のキーワードに最適化されており、大きなレキシコンではないため完全に遅いパーサを生成します。
関連する問題
- 1. 辞書に追加する
- 2. 辞書の値を別の辞書に追加する
- 3. 辞書に.csv形式の辞書を追加する
- 4. テキストファイルから特定の行だけを辞書に追加する
- 5. 辞書に辞書を追加する方法
- 6. メイン辞書にサブ辞書を追加する
- 7. 辞書内の辞書に追加する
- 8. タプルをキー辞書に追加する
- 9. 辞書に値1を追加する
- 10. 辞書にキーを追加する
- 11. pyenchantに辞書を追加する
- 12. 辞書に値を追加する
- 13. 辞書に項目を追加する
- 14. Swift - 辞書にテキストを追加する
- 15. 辞書に項目を追加する
- 16. リストにユニーク辞書を追加する
- 17. テキストファイル辞書をPython辞書にインポートするには
- 18. 辞書テキストファイルUNIX
- 19. 辞書の配列を追加する
- 20. 辞書を辞書に追加しますか?
- 21. Pythonのテキストファイルに辞書を書く
- 22. Pythonの追加辞書
- 23. 辞書を辞書に追加するときに重複する理由
- 24. リストを含む辞書をPythonの別の辞書に追加する
- 25. テキストファイルを辞書に変換する
- 26. 辞書をテキストファイルに保存する(C#)
- 27. NullReferenceException C#で辞書を追加する
- 28. プロパティリストの辞書内の辞書に値を追加する方法
- 29. ディクショナリ内の辞書内の要素を辞書内に追加する
- 30. Python辞書をテキストファイルに書く
データ依存バージョンにアクセスすることができますか? – rien333
明確な考えはありません。悪ふざんなプロジェクトには大きなバックログがあり、我々は現在他の優先事項に取り組んでいます。 – jurgenv
あなたはデータの依存関係を解析するために、イグアナまたはマイアカットを試すことができます(githubを参照)。 – jurgenv