2016-05-04 9 views
2

Ich habe einen Parser für Sprache, die wie folgt aussieht:JParsec - Scanner.string() Äquivalent für Token

[nodeType OPTIONAL STUFF] 

Es gibt ein paar Knoten eingegeben haben, wie „fragen“ und „set“, so zur Zeit ask und set sind als Schlüsselwörter definiert. Dies verursacht Probleme in anderen Teilen des Parsers.

Gibt es eine Möglichkeit, einen Token-Parser zu definieren, der nur Token akzeptiert, die bestimmten Text enthalten?

Antwort

0

Ja. Sie können sich die Terminals Klasse ansehen und dies wird auch in der Tutorial erklärt.

Eigentlich jparsec die beiden Durchgänge des Parsing kombiniert, die traditionell in lex und yacc getrennt wurde: Die lexikalische Analysephase (zB Terminals) parst ein String und liefert einen Strom von Token s, die syntaktischen Analyse (andere Parser Instanzen) analysiert den Strom von Token s und interpretiert sie, wobei normalerweise ein AST aufgebaut oder die Semantik direkt eingebettet wird.