ANTLR语义评估

ANTLR语义评估,antlr,Antlr,我想从另一个先前定义的列表中支持类似Haskell的列表构造 例:[2*x+1 | x找到了部分答案。这在ANTLR中称为前向引用。 但我的问题是表达式是唯一可以返回结果的东西,所以我不能只将表达式存储在列表中,然后检查语法结构。我需要并行地进行计算 constructlist : { ArrayList<Integer> myList= new ArrayList<Integer>(); ArrayList<Inte

我想从另一个先前定义的列表中支持类似Haskell的列表构造
例:[2*x+1 | x找到了部分答案。这在ANTLR中称为前向引用。 但我的问题是表达式是唯一可以返回结果的东西,所以我不能只将表达式存储在列表中,然后检查语法结构。我需要并行地进行计算

constructlist
    :   {   ArrayList<Integer> myList= new ArrayList<Integer>();    
            ArrayList<Integer> newList = new ArrayList<Integer>();}

        '[' op1= expression '|' op2= expression '<' '-' IDENT ']'

          { myList= lists.get($IDENT.text);                                         
            for(int i=0;i<myList.size();i++)
            {
                variables.put($IDENT.text,myList.get(i));
                newList.add($op1.result);
            }

            {System.out.println(newList);}                                  


    ;