JAVACC && JJTree (.jjt) 插入 ||解析两个标记时将符号放入树中

标签 java tree javacc

例如B && C 树应该像这样 (A || B) && (C)。这应该是这样的。我尝试过,但每次都额外||像这样添加 A ||乙|| && C. 这每次都会生成错误的树。

代码我这样做

LOOKAHEAD((simpleTerm())+)

   (
       simpleTerm()
  {
     jjtthis.setValue("||");
   }
   )+

*注意 simpleTerm 可以是 <STRING> 或 <QuotedString>*

如何插入 ||符号进入树,因此它形成像这样的树 A || B&&C。?

如何使用 javacode 将 token 图像插入到树中?

最佳答案

尝试如下操作

void Conjunction() #void :
{ }
{
  Disjunction()
  (  "&&"
     Disjunction()  
     {jjtThis.setValue( "&&" );} #BinOp(2)
  )*
}

void Disjunction() #void :
{}
{
  SimpleTerm()
  (  
     SimpleTerm()  
     {jjtThis.setValue( "||" );} #BinOp(2)
  )*
}

void SimpleTerm() :
{Token t ;}
{
    (t=<STRING> | t=<QUOTEDSTRING>)
    {jjtThis.setValue( t.image ) ;}
}

关于JAVACC && JJTree (.jjt) 插入 ||解析两个标记时将符号放入树中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064360/

相关文章:

java - 解析 Beanshell 代码

java - 如何确定数字的范围

java - 在 iCODE 标签上写入后 NFC 停止工作,Android 6.0

java - 我需要 Java 才能在 Amazon EC2 中运行 hadoop 吗?

ruby-on-rails - 工厂女孩和血统

C# HtmlAgilityPack 内部 html 在附加节点后不改变

c - 为什么很多 BST 函数返回根而不使用双指针?

Java的synchronized关键字问题

java - 当 jar 文件从 URL 作为 InputStream 打开时,JarEntry.getSize() 返回 -1

java - 在 .jj 文件中检测到左递归