ocamllex

    6

    1答えて

    ocamllexのマニュアルを参考にして、私は暇な時間にLua fslex lexerに取り組んできました。 長い文字列を正しくトークン化しようとしているうちに、いくつかの問題が発生しました。 「長い文字列」は、'[' ('=')* '['と']' ('=')* ']'のトークンで区切られています。 =記号の数は同じでなければなりません。 最初の実装では、レクサーは一致ルールが最も長くてもLBRA

    3

    1答えて

    ocamllexを使ってOCamlにおもちゃのプログラミング言語を書くのが面倒で、インデントの変更、Pythonスタイルに敏感な言語にしようとしていましたが、ocamllexの正規表現ルールで行の先頭に一致する問題があります。私は^を使用して行の始めに一致させていましたが、文字列の連結演算子であるOCamlでは慣れていました。

    0

    1答えて

    私は、字句のコンセプトに新しいですし、次の例の入力を読み取るためにOCamlではレクサーを記述しようとしています: (blue, 4, dog, 15) 基本的には入力は任意のランダムな文字列または整数のリストです。 int型の入力の多くは、電卓をモデル化しているので、多くの例が見つかりましたが、例やレキシング文字列に関するドキュメントはありませんでした。ここまで私がレクサーとして持っているも

    0

    1答えて

    ocamllexとocamlyaccを使ってインタプリタを作成しましたが、レクサーとパーサーは正しく動作しますが、現在はすべてのそれらは順番に。たとえば、./interpret one.txt two.txt three.txtは、one.txtの解析と反対の意味でthree.txtを解析し、次にtwo.txtを、次にthree.txtを求めます。電流出力がある./interpret one.tx

    0

    4答えて

    に「Clang:error:no input files」があります。this solutionに続いて、lexer.mllに#include "...frontend/tokens.mll"を使用し、cpp -P frontend/lexer.mll -o frontend/gen/lexer.mllを使用して完全なmllファイルを生成します。このソリューションはUbuntuのもとでは以前から働

    5

    4答えて

    私のロープの最後です。私はocamllexで働くことが何もできません、そして、それはナッツを運転しています。ここで { open Parser } rule next = parse | (['a'-'z'] ['a'-'z']*) as id { Identifier id } | '=' { EqualsSign } | ';' { Semicolon

    0

    1答えて

    Excelの式のためのレクサーとパーサーを作成しています。 Excelでは、セルに名前を割り当てることができます。たとえば、abcは有効な名前ですが、セルとの混同を避けるためにセル名をB2とすることは禁止されています。 B2したがって、式=B2を満たした後は、B2がユーザー定義の名前ではなくセルを参照していると確信しています。私lexer_formula.mll、私が定義した識別子で : let

    0

    1答えて

    特定の言語用の小さなエディタを作成したいと思います。エディタでは、indentを1行または複数行(つまり、各行の左手に空白を追加)することができます。我々はまた、format全体のコード(すなわち、適切な場所に白いスペースと改行を変更すること)になることができます。 私のフロントエンドはocamllexとocamlyaccで、Abstract Syntax Tree (AST)を構築することができ

    0

    1答えて

    私は次のコードをexprのように後に持っている:int {} | BOOL {}などしかし、私はこのパーサーの型で書く必要があります型がわからない、私はint型で動作する電卓の例がintですが、私のプログラムで浮動小数点文字の文字列など..ありがとうあなたの文法から判断 %{ dont know what to write here %} %token <int> INT %token