我试图在Xtext上创建一个语法,允许将布尔表达式作为参数传递给另一个特殊函数,该函数只获得 布尔参数(隐式地,不会声明它' sa布尔类型)。
例如:
someFunction(...){
foo(4>3, a==b)
}
foo(arg1,arg2)
{
//do something with arg1 and arg2
}
你有一个简单的例子来演示如何做到这一点吗?
谢谢。
答案 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/