lexer

    1熱度

    1回答

    我想知道如何在發現不匹配時保持詞法分析器或解析器不運行。例如,如果詞法分析器預期'。'我希望它不要繼續恢復模式。

    0熱度

    1回答

    在Python中,單詞in表示運算符的表達式1 in [1,2,3]。但是,在聲明for i in range(10)中,它表示關鍵字'for'語句。我寫了一個基於正則表達式的詞法分析器。我使用規則(\+|-|\*|/|is|in)來匹配關鍵字的運營商和(for|in|if|elif|else)。我不知道是否應該將in置於運算符或關鍵字的規則中。他們兩個都會失去一個意思。看來我應該在解析中解決這個

    0熱度

    1回答

    我正在寫一個詞法分析器和解析器到我自己的語言來處理列表上的操作。我開始與: list_Declaration : L_LIST L_ID ASSIGN LBRACE NUMBER (COMA NUMBER)* RBRACE SEMI; NUMBER : [0-9]+; L_BOOLEAN_LITERAL : 'true' | 'false' ; L_ID

    1熱度

    1回答

    我試圖優化我的JavaCC解析器和我有一個關於在語法定義定義標記問題。 這是好還是不好的做法?它是否會影響解析器的性能? 例如: void name() : { Token name; } { name = < NAME : (<LETTER> | <DIGIT>){2, 7}> { System.out.println(name.image);

    0熱度

    1回答

    我正在製作一個Lexer,並選擇使用正則表達式來分割我的令牌。 我正在處理所有不同的標記,除了真正讓我感到困惑的標記是單詞和標識符。 你看,我已經制定的規則如下: 詞不能啓動或下劃線結束。 單詞的長度可以是一個或多個字符。 下劃線只能用於之間的之間的字母,並且可以多次出現。我想要什麼 例子: _foo <- Invalid. foo_ <- Invalid. _foo_ <- Inv

    0熱度

    1回答

    在我(simplyfied)語法 grammar test; prog: stat+; stat: sourceDef ';' ; sourceDef: SRC COLON ID ; STRING : '"' ('""'|~'"')* '"' ; // quote-quote is an esca

    0熱度

    2回答

    我在flex中定義了一個非常長的模式,其中包含很多或個案。我想知道是否有方法通過多行編寫定義來提高代碼的可讀性。像 %option noyywrap 1 %{ ... 14 %} 15 16 DIGIT [0-9] 17 ID [a-z][a-z0-9]* 18 LOOP_KWD for|while| 19 his|her //THIS IS

    1熱度

    1回答

    我想在flex中使用以下模式來匹配# linenum filename flags表單的預處理程序信息,但我遇到無法識別的規則錯誤。這是觸發它的模式: # [0-9]+ \"[^"]*\" [1-4]{0,4}

    -2熱度

    1回答

    我打算構建一個解析器,它只解析如下的特定格式。 Dec 17 14:00:00 IP firewall,info FFFW forward: in:<pppoe-mm.demo.649> out:sfp-sfpplus1.vlan113, proto TCP (ACK,PSH), IP:PORT->IP:PORT, NAT (IP:PORT->IP:PORT)->IP:PORT, len 250

    1熱度

    1回答

    我有這個語法 grammar Arith; exp : LPAREN exp RPAREN | fun | num | exp (OP exp)+ ; num : LPAREN num RPAREN | LESS num | INT | INT 'b' | '0x' INT ; fun : LPA