lex

    -2熱度

    1回答

    我必須寫有這些規則lex程序: Identifiers: String of alphanumeric (and _), starting with an alphabetic character Literals: Integers and strings Comments: Start with ! character, go to until the end of the line 這是我與

    3熱度

    1回答

    上終止並解析錯誤我的詞法分析器應該在分類期間區分括號並保留一疊已打開的括號。爲此,我在我的FSL文件中指定一個輔助功能是這樣的: let updateBracketStack sign = // whenever a bracket is parsed, update the stack accordingly match sign with | '[' -> push sig

    0熱度

    1回答

    我正在使用Lex和YACC解析XML文件。我的語法就像。 START_TAG attributes AN_CLOSE childelements data END_TAG AN_CLOSE { if(strcmp(getSubStr($1,1,strlen($1)-1),getSubStr($6,2,strlen($6)-1))==0) { //Here co

    0熱度

    1回答

    我有這樣的語法 value : INTEGER | REAL | LEFTBRACKET value RIGHTBRACKET | op expression | expression binaryop expression ; 和我得到這個轉變減少錯誤 47 expression: value . 53 value: LEFTBR

    4熱度

    2回答

    我正在開發Flex & Bison項目。我得到了我的flex &野牛完美的工作,但我試圖給argv作爲輸入(yyin)。所以我改變了yyin,以至於花了argv [1],但它實際上並不工作。似乎它採用了argv [1],但是即使我的字符串我想完美工作,我也得到了一個語法錯誤。 這裏是我的Flex: %{ #include "parser.hpp" extern int yyparse();

    0熱度

    1回答

    跳轉指令要實現 DJNZ R1,LABEL 這意味着遞減R1和跳轉到標號如果遞減的結果不爲零。 我有一個生成令牌DJNZ,REG和LABEL的lex文件。 在YACC文件我有: Jump_instr: DJNZ REG ',' LABEL {regmem[regIdx] = regmem[regIdx] -1; if (regmem[re

    0熱度

    1回答

    我定義以下的別名: WS [ \t\n] WSS {WS}* NEWSS {WS}+ NAME [A-Za-z_][A-Za-z0-9_-]* WORD [^;]+ VAR_USE ${WSS}{NAME}{WSS}: VAR_DEF ${VAR_USE}{WSS}{WORD}{WSS}; 而且,這兩個簡單的規則: {VAR_DEF} cout << "VAR DEF"; {VA

    0熱度

    1回答

    所以我正在做這個項目,你要命令叉車用自然語言做某些事情,而我正在使用Python Lex Yacc。我想知道是否有辦法區分長度相同的排列後的語法?文檔只說明你可以用len(p)來做,但只有在長度不同時纔有幫助。示例代碼: def p_moveitemfromto(p): '''moveitemfromto : MOVEITEM fulltype item rack rack side

    0熱度

    1回答

    我對lex和yacc有以下代碼。任何人都可以在印刷的聲明中看到額外的價值。代碼有什麼問題? 萊克斯代碼: %{ #include <stdio.h> #include "y.tab.h" %} %% [ \t] ; [+-] { yylval=yytext; return Sym;} (s|c|t)..x { yylval=yytext; return Str;} [a-zA-Z

    0熱度

    1回答

    我是Lex/Yacc編程中的新成員。我有一個關於如何從另一個C文件中調用Yacc文件中的函數的問題。假設我有以下萊克斯/ Yacc的代碼: calc.l %{ #include "y.tab.h" extern int yylval; %} %% [0-9]+ { yylval=atoi(yytext); return NUMBER;} [ \t]; \n