lex

    0熱度

    1回答

    我正在寫作業控制外殼。我使用Yacc和Lex進行分析。我的語法中的最高規則是pipeline_list,這是一個用逗號分隔的管道列表。因此,是pipelinelists的實例如下: cmd1 | cmd2; cmd3; cmd4 | cmd5 <newline> cmd1 <newline> <nothing> <newline> 我表示與pipeline規則管道(下面顯示)。在該規則中,

    -1熱度

    1回答

    我想用特定語法解析文本文件。 文件的內容會像 The Living Room is a room. 我在法 The return THETOK; [a-zA-Z]* return ROOMNAME; "is a room." return ISROOMTOK; 而在YACC文件我已經寫了寫了下面的標記以下 command: THETOK ROOMNAME ISROOMTOK

    0熱度

    1回答

    我試圖找出如何以模擬法(彎曲)上下文/模式或「上下文的棧」的堆棧。 我特別想寫出具有字符串文字,可以送你回一個表達式-Y上下文的概念解析器。 我有一個簡單的語法,它支持使用語法'...'原始字符串字面量,當它找到一個打印字符串。 但是,字符串標記的長度可能是無限的(達到lex的最大緩衝區大小,我認爲它是在生成的C源代碼中的某個宏中定義的)。 我想定義一個begin_string令牌'和end_st

    0熱度

    1回答

    我正在爲BUGS使用ANTLRv4語法 - 我的回購是here,鏈接指向特定的提交,因此不應過時。 下面的最小代碼示例。 我想輸入規則沿着t路線去,如果輸入爲T(,但沿着id路線去,如果輸入的是T下面的語法。得到BUGS語法 grammar temp; input: t | id; t: T '('; id: ID; T: 'T' {_input.LA(1)==(}?; ID: [

    1熱度

    1回答

    如何在Linux上調試LEX/FLEX程序?編譯和運行代碼如下: lex example.l gcc lex.yy.c -lfl ./a.out <Enter your input> 是否-d令牌將調試LEX/FLEX?如果是的話,我需要將它包含在編譯代碼中?

    0熱度

    1回答

    %{ #include<stdio.h> int vowel=0; %} %% [aeiouAEIOU] { vowel++; } %% int main() { char str[200]; gets(str); yylex(); printf("Vowels:",vowel); }

    -1熱度

    1回答

    我正在爲使用yacc/lex編寫一個簡單的shell語法。我希望我的語法能夠識別具有以下形式的管線: command1 | command2 | ... | commandn。我可以將單個命令重新規範化,其中the simple_command規則作爲下面代碼中的起始非終端。但是,當我添加其他規則(simple_command_list和pipeline)來解析管道時,事情不起作用。爲了測試語法,

    0熱度

    1回答

    我使用flex和bison爲虛構的編程語言創建解析器。將會有有效和無效的變量名稱。 XXXX XY-1 // valid XXXXX Z // valid XXX Y // valid XXX 5Aet // invalid XXXX XXAB-Y // invalid x的開頭只是指定變量的大小。變量5Aet是無效,因爲它以數字開頭。我已成功地匹配這個 [\_\-0-9][a-zA-

    1熱度

    2回答

    我有以下問題:我通過A.阿佩爾在ML編譯器的工作,我寫了下面的結構簡單 signature Tiger_Tokens = sig type linenum; type token; val ADD : linenum*linenum -> token; val INT : string*linenum*linenum -> token; val

    0熱度

    1回答

    我正在用Ocamllex爲Brainfuck編寫一個詞法分析器,爲了實現其循環,我需要更改lexbuf的狀態,以便它可以返回到流中的前一個位置。上Brainfuck(可跳過) 背景信息 在Brainfuck ,環路是通過一對方括號與 完成了以下的規則: [ - >繼續進行,並評估下一個標記 ] - >如果當前單元格的值不是0,則返回匹配的[ 因此,下面的代碼的計算結果爲15: +++ [ > ++