flex でコンパイラをプログラムする必要があります。
しかし、私は与えられたコードが気に入らず、自分で作りたいと思っています。
lexfile.l:
{%
typedef enum { EQ=0, NE, PLUS, MINUS, SEMICOLON } punctuationType;
typedef enum { PRINT=100, WHILE, IDENT } keywordType;
%}
%%
"!=" { return NEQ; }
"=" { return EQ; }
"+" { return PLUS; }
"-" { return MINUS; }
";" { return SEMICOLON; }
%%
より良い解決策はありますか?
私は解決策を探しましたが、他の解決策は定数を定義することです。
#define EQ 0
#define NE 1
...
出力例:
Operator EQ
Operator NE
質問は、列挙型の代わりにより良い型がある場合のみです