我的 DSL 中有一个原型:
prototype function SaySomething(String Words);
prototype function SayHelloLanguage(String Language, String Words);
我想验证当您调用其中一个函数原型时
SaySomething("Hello World!");
SayHelloLanguage("French", "Bonjour World!");
您包含正确数量和类型的参数。
Prototype:
'prototype function' name=ID '('parameters+=Parameter (',' parameters+=Parameter)* ')'
Function:
name=[Prototype] '('parameters+=Parameter (',' parameters+=Parameter)* ')'
^^^^^ how do I cross reference/validate this part
我想出了足够的交叉引用和范围,以便它会自动完成函数名称,但我看不出如何在语法中定义正确的参数计数或类型限制。
我需要实现验证器吗?或者这是我可以在语法中定义的东西?