[英]How to create a lambda symbol at jflex?
我正在用 jflex + javacup 做一个句法分析器。 在 .cup 语法我有这部分:
SUBPPARAMLIST ::= lambda | "(" EXPLIST ")"
lambda 没有任何意义(SUBPPARAMLIST 可以为空)
好吧,我设法在我的 .flex 中正确创建了所有标记,但我不知道如何创建 lambda 符号。 我希望你们能帮助我,如果你不明白我的问题,请告诉我
WhatDoIWriteHere{return symbol(sym.lambda);}
空的产生式(你称之为“lambda”)不需要符号,因为它是空的。 您可以通过产生式规则表达这一点:
SUBPPARAMLIST ::= lambda | "(" EXPLIST ")" ;
lambda ::= ;
引用:语法中的每个产生式都有一个左侧非终结符,后跟符号“::=”,然后是一系列零个或多个动作、终结符或非终结符,后跟一个可选的上下文优先级分配,并以分号 (;) 终止。 注意“...零个或多个...”
可能语法解析器也能够处理这个:
SUBPPARAMLIST ::= "(" EXPLIST ")" | ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.