プログラミング言語クラスの割り当てとして、Clite の構文アナライザーを実装しています。入力スキャナーから文字列を引数として受け取り、それが予期されるトークンであるかどうかをチェックする match() 関数を備えた再帰降下パーサーを使用しています。そうでない場合は、エラー メッセージを返します。
アルファベットのセットを宣言しようとしてきたので、アルファベットの各文字を一致させる必要はありません。このようなもの:
void letter(){
if(currentToken==LETTER){
match(LETTER);
}
else
error();
}
#define で試してみましたが、機能していないことに気付きました
#define LETTER "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
union や typedef でも試してみましたが、できませんでした。何か案は?