使用布尔表达式作为 Xtext 的参数

Using Boolean expressions as arguments on Xtext

我正在尝试在 Xtext 上创建一个语法,它允许将布尔表达式作为参数传递给另一个特殊函数,该函数只获取 个布尔参数(隐含地,没有声明它是布尔类型)。

例如:

someFunction(...){
   foo(4>3, a==b)
}

foo(arg1,arg2)
{
   //do something with arg1 and arg2
}

你有一个简单的例子来演示如何做吗?

谢谢。

从你的问题来看,你的实际问题是什么不是很清楚。

如果这是关于构建表达式语法:以此为起点

Expression:
    OrExpression
;   

OrExpression returns Expression:
    AndExpression ({OrExpression.left=current} "||" right=AndExpression)*  
;   

AndExpression returns Expression:
    ComparisonExpression ({AndExpression.left=current} "&&" right=ComparisonExpression)*  
;

ComparisonExpression returns Expression:
    PrimaryExpression ({ComparisonExpression.left=current} operator=("<"|"<="|"=="|">="|">") right=PrimaryExpression)*
;

PrimaryExpression returns Expression:
    "(" Expression ")"
    | Literal
;

Literal returns Expression:
    {Literal} value="true" | "false" | INT
;

查看一些见解https://typefox.io/parsing-expressions-with-xtext

如果这是关于构建类型系统,请查看 http://xsemantics.sourceforge.net/