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

时间:2016-08-08 12:58:39

标签: boolean arguments expression xtext

我试图在Xtext上创建一个语法,允许将布尔表达式作为参数传递给另一个特殊函数,该函数只获得 布尔参数(隐式地,不会声明它' sa布尔类型)。

例如:

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

从您的问题来看,您的实际问题并不十分清楚。

如果这是关于为表达式构建语法:使用它作为起点

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/