私は自分の 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
関数名をオートコンプリートするのに十分な相互参照とスコープを見つけましたが、文法で正しいパラメーター数または型制限を定義する方法がわかりません。
バリデーターを実装する必要がありますか? または、これは文法で定義できるものですか?