lex

    12熱度

    1回答

    我已經找了我的答案,但我沒有得到任何一個簡單的例子的快速反應。 我想編譯一個使用g ++的flex/bison掃描器+解析器,只是因爲我想用C++類創建AST和類似的東西。 在互聯網上搜索我發現了一些漏洞,所有說的唯一需要的是在lex文件中使用extern「C」聲明一些函數原型。 所以我shady.y文件 %{ #include <stdio.h> #include "opcodes.h"

    5熱度

    4回答

    處理項目中多個Flex/Bison解析器的最佳方式是什麼? 我寫了一個解析器,現在我需要第二個在同一個項目中。到目前爲止,在parser1.y的第三部分,我插入了main(..)方法,並從那裏調用yyparse。 我想獲得是一種有兩個不同的解析器(parser1.y和parser2.y),並能夠從外部函數中使用它們什麼(假設在main.cppmain)。 我應該使用哪些預防措施導出yyparse函

    2熱度

    4回答

    使用gcc和-Wall選項編譯我的項目時,我收到一條警告,說明在flex文件的不存在的最後一行中沒有任何效果: 警告: gcc -Wall -O0 -ggdb3 -DNOSUDO -DJOBC -DDEBUG -c lex.yy.c tokenizer.l: In function ‘yylex’: tokenizer.l:179: warning: statement with no eff

    4熱度

    1回答

    我可以使用由flex/bison | lex/yacc生成的代碼在多線程環境中嗎?恐怕有很多全局變量。它如何被修復?

    0熱度

    2回答

    我正在製作這個非常簡單的lex程序(只是一個介紹性的程序)。但是在編譯lex.yy.c中,我得到這個錯誤爲: inToPostfix.l:26: error: ‘struct stackoperand’ has no member named ‘top’ inToPostfix.l:32: error: ‘struct stackoperator’ has no member named ‘to

    0熱度

    1回答

    我想定義char(即'a AND'a'),但我在檢查錯誤時遇到問題。 在這裏,我如何編寫規則和檢查: char " ' " {letter} 代碼 {char} { int x =input() ; //printf("%d",'a'); if(x == 10) { return(tCharunterm);

    8熱度

    3回答

    我正在嘗試使用flex和野牛來創建一個簡單的腳本語言。現在,我只是想讓計算器工作。 雖然我無法編譯它。當我運行這個Makefile: OBJECTS = hug.tab.o hug.yy.o PROGRAM = hug.exe CPP = g++ LEX = flex YACC = bison .PHONY: all clean all: $(OBJECTS) $(CPP) $

    0熱度

    1回答

    我正在爲一個類的簡單lex程序,並在其中創建一個非常基本的符號表,只是一個線性掃描的搜索字符串數組。我已經聲明它: char* identifiers[100]; 而且我使用它像這樣: found = false; for (i = 0; i < seen_identifiers; i++) { if (!strcmp(identifiers[i], yytext)) {

    1熱度

    1回答

    當 我試圖使用野牛編譯(我不知道這是否是正確的單詞使用),但是當我嘗試編譯此源代碼: %{ #define YYSTYPE double #include <math.h> #include <stdio.h> %} %token NUM %% input: /* empty */ | input line ; line: '\n' | exp '\n

    0熱度

    1回答

    如何在ATL & T語言中爲(f)lex中的引用字符串編寫常規定義?字符串的 的例子,來我的腦海: 「ABC」 「A \」 BC 「 」ABC \「 」ABC \「」 後來編輯: 「ABC」, 「DEF」 應當匹配爲兩個字符串 「AB \」 c」的 「DEF」 應當匹配爲兩個字符串 「ABC \」 「DEF」 應當匹配爲兩個字符串 定義\「[^ \」] \「不起作用,因爲它將匹配」abc「」def