lexical-analysis

    1

    2答えて

    私はC++でXMLスキャナを書こうとしています。私は理想的には正規表現ライブラリを使うほうがずっと簡単です。 しかし、私はそれを行う方法のように少し困惑。ですからまず、各トークンの正規表現を言語で作成する必要があります。トークンの名前に加えて、これらの正規表現のペアをマップに格納することもできます。 次に、私は、入力ファイルを開いて、私のファイル内の文字列を反復処理し、正規表現にそれらを一致させる

    0

    1答えて

    自分自身のレクサーを作成し始め、トークン化文字列に問題が発生しました。開始文字( ")と終了文字(")が関連付けられています。 誰でも、レクサーが終わりのない文字列を持っていることでレキシングに対処できる共通のテクニックを知っていますか? 私はANTLRがこれを行うことができると思います、これはANTLRのATNによって処理されますか? 私はそこに文字列を1行に終了しなければならないと仮定し、ここ

    0

    1答えて

    私はC言語のような字句解析ツールを構築しました。例えば、この入力を与えると次の結果が得られます。上記の例では 入力 int i = 0 ; int j = i + 3; 出力 int KEYWORD i IDENTIFIER = OPERATOR ; PUNCTUATION int KEYWORD j IDENTIFIER = OPERATOR i IDENTIFIE

    0

    2答えて

    printf("Some string here",++i++&&&i***a); 私はこのコードスニペット用のトークンの数をカウントする方法、混乱しています。基本的には、&&&と***がどのようにカウントされるのか分かりません。 私は&&が1トークンであり、&が1である一方、***は合計3トークンだと思いますが、それが正しいかどうかはわかりません。 トークンを分離するために空白でコードを編集しま

    0

    1答えて

    は、私はそれが私のエラーを与えているキーワードを作る使用して、それをコンパイルしようとしたとき。 エラー: - テール: - あなたは通常、最後の行がで終了していないLEX(またはフレックス)からこのエラーが出ます enter image description here

    1

    1答えて

    ANTLR4を使用してブールリテラルを定義するための文法を作成しようとしています。 "BOOL#TRUE"または単に "TRUE"のいずれかの形式を取ることができます。 私はこのような字句規則としてそれを定義した場合: Bool_Literal : ('BOOL' '#')? ('FALSE' | 'TRUE'); ANTLRは、入力が一致することはできません。 isHigh := FALS

    1

    1答えて

    私はElixir用のjinja2のようなテンプレート言語を実装する初期設計段階にあります。私はレクサーを手作業で書く傾向がありましたが、最近Erlangのleexモジュールを訪れました。それは有望に見えますが、初期の研究の後には、それが私の目的にとって適切なツールであるかどうかわかりません。 私の躊躇の1つは、基本的に文字列の埋め込み言語であるテンプレート言語ですが、leexを使用してこのケースで

    3

    2答えて

    を検証:任意の関数は、パラメータの正しい数を持たなければならないように、 2 + sin (max (2, 3)/3 * 3.1415) がどのように私はプログラム的表現を検証することができますか?たとえば、abs、sin、cosは正確に1つのパラメータを持つ必要がありますが、sum、avg、max、minは2以上です。 各パラメータ自体が非常に複雑な式である可能性があることを考慮すれば、これ

    0

    1答えて

    C++でファイルを読み込むときに、どのようにEOFを通知するのですか?私は、ファイルを読み込んでそれを言語のトークンに分割するコンパイラデザインの一環として、直接コード化されたスキャナを作成しています。 私はプログラム全体を読み、コメントを取り除き、空白を圧縮します。次に、得られたプログラムcharをcharで最大1024文字のバッファに入れます。だから私たちが空になったら、バッファーを補充するか

    0

    1答えて

    LACファイルに定義されていないすべての記号に対してYACCが構文エラーを報告する可能性があるかどうか疑問に思っていました。 例: レックス /*dummy.y*/ %token INT ID NUM %% var : INT ID "=" NUM ";" %% int main(void) { yyparse(); } とき 私のプログラムは、構文エラーを報告します