に一定のルールを必須にするにはどうすれば条件式をチェックする必要があり、次の文法を書きました。以下 例としては、私はこの文法を使用して達成したいものです。ANTLR
test
無効
test = 1
有効
test = 1 and another_test>=0.2
有効
test = 1 kasd y = 1
無効(2つの条件がでAND/OR分離しなければならない)
a = 1 or (b=1 and c)
無効(そこにはできませんすなわち、 'c'のような孤独な文字です。それは常に三つ組、すなわちリテラル演算子リテラルでなければなりません)
だから私の質問は、上記の例で動作するように文法を取得するにはどうすればいいですか? 2つのトリプレット(リテラル演算子リテラル)の間にある単語を必須とすることはできますか?ある意味では、パーサにwhere句の条件を検証させようとしていますが、単純な条件と関数だけが許されています。私はまた、関数、括弧、任意のリテラルなどのJavaの値を取得する訪問者を持って、どのように達成する必要がありますか?
ありがとうございます。すべてを受け入れてからエラーを投げる方が良いアプローチだと思われます。しかし、私は木でそれを取得することができませんよ。その例ではhttp://imgur.com/a/68RWI – NEO
のうち表現を作成する方法はありませんとして、あなたは、lals' 'で構文エラーがありますそれは、種類にかかわらず –