📄 parser.grm
字号:
productions
PARSER = SECTION*
SECTION = userdefined_ productions_ PRODNAMES -> userprods_(PRODNAMES),
userdefined_ domains_ PRODNAMES -> userdoms_(PRODNAMES),
productions_ PRODUCTIONS -> productions_(PRODUCTIONS)
PRODUCTIONS = PRODUCTION+
PRODUCTION = upper(STRING):CURSOR equal PRODBODY -> p(PRODNAME,CURSOR,PRODBODY)
PRODBODY = upper(STRING):CURSOR STAR_PLUS SEPARATOR
-> list(PRODNAME,CURSOR,STAR_PLUS,SEPARATOR),
PRODGROUPS -> groups(PRODGROUPS)
STAR_PLUS = star -> star,
plus -> plus
SEPARATOR = separator_ id(STRING) -> sep(STRING),
-> none
PRODGROUPS = PRIORGROUP+ separator priorsepp
PRIORGROUP = SINGPROD+ separator comma
SINGPROD = ASSOC GRAMTOKL arrow:CURSOR TERM -> prod(ASSOC,GRAMTOKL,CURSOR,TERM)
ASSOC = rightassoc_:CURSOR -> right(CURSOR),
-> left
GRAMTOKL = GRAMTOK*
GRAMTOK = upper(STRING):CURSOR -> prodname(PRODNAME,CURSOR),
TOKK CURSORDEMAND -> tok(TOKK,CURSORDEMAND)
CURSORDEMAND = colon PRODNAME -> curdemand(PRODNAME),
-> none
TOKK = id(STRING):CURSOR lpar PRODNAMES rpar -> cmp(STRING,CURSOR,PRODNAMES),
id(STRING):CURSOR -> name(STRING,CURSOR)
TERM = upper(STRING):CURSOR -> dom(PRODNAME,CURSOR),
id(STRING):CURSOR lpar PRODNAMES rpar -> term(STRING,CURSOR,PRODNAMES),
id(STRING):CURSOR -> name(STRING,CURSOR)
PRODNAME = upper(STRING) -> PRODNAME
PRODNAMES = PRODNAME+ separator comma
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -