lexical-analysis

    0热度

    1回答

    如何在C++文件中读取信号时发出EOF信号?我正在编写一个直接编码的扫描器,作为编译器设计的一部分,它读入一个文件并将其分割成一个语言的标记。 我要在整个程序中读取,删除注释并压缩空白。然后把由char生成的程序char放入最大尺寸为1024个字符的缓冲区中。所以当我们空着的时候,我们会补充缓冲区或者什么不是。 要打开我有这个写入的文件: // Open source file. source_

    0热度

    1回答

    我不明白为什么在2个功能相同的源文件中,只有1个编译阶段通过flex,另一个生成关于use of undeclared identifier的错误。 这一个是OK(我通常不会在我的编辑器中使用的标签,这些都是空格) int num_lines = 0, num_chars = 0; %% \n ++num_lines; ++num_chars; . ++num_chars; %%

    1热度

    2回答

    我想用C++编写一个XML扫描器。我最好喜欢使用正则表达式库,因为它会容易得多。 不过,我有点难倒就如何做到这一点。所以,首先我需要为语言中的每个标记创建正则表达式。除了令牌的名称之外,我可以使用映射来存储这些正则表达式的对。 接下来,我会打开一个输入文件,并想用一个迭代器通过我的文件中的字符串进行迭代,并将它们匹配到正则表达式。但是,在XML中,您没有间隔来分隔字符串。 所以我的问题是这种方法甚

    0热度

    1回答

    我已经开始编写自己的词法分析器,并且由于它们具有与它们相关联的开始(“)和结束(”)字符而导致令牌化字符串出现问题。 有没有人知道一个常见的技术,一个词法分析器可以应付并继续lexing与一个未终止的字符串? 我认为ANTLR可以做到这一点,这是由ANTLR的ATN处理? 我可以看到有是两个问题在这里假设字符串必须终止在同一行: 字符串终止发生在一个单独的行 - 因此警告说,串只能在一个单一的放在

    0热度

    1回答

    我已经为C语言构建了一个词法分析器,例如给出这个输入可产生以下结果。 输入 int i = 0 ; int j = i + 3; 输出 int KEYWORD i IDENTIFIER = OPERATOR ; PUNCTUATION int KEYWORD j IDENTIFIER = OPERATOR i IDENTIFIER + OPERATOR 3 I

    0热度

    1回答

    当我试图用做关键字它给我的错误编译: premature end of file in lex.l file in line no 17. %option noyywrap %{ #include "grammer.tab.h" %} name ([0-9]) whitespace [ \r\t\v\f] linefeed \n %% {name} { return

    -4热度

    1回答

    a=5;b=10;a----------------++++++++++++++++++b # Output: 15 以上是python脚本的输出。 你能解释它是如何工作的吗?我很惊讶,它的作品,并给出了答案! 但是类似这样的表达不使用Java,C工作,C++ 例如: a=10; b=5; System.out.println(a---b);//error!! cout<<a---b

    1热度

    1回答

    我想创建一个使用ANTLR4定义布尔文本的语法。它可以采用“BOOL#TRUE”或“TRUE”的形式。 ,如果我把它定义为一个词法规则是这样的: Bool_Literal : ('BOOL' '#')? ('FALSE' | 'TRUE'); ANTLR的无法比拟的输入: isHigh := FALSE; 错误是 “不匹配输入 '假' 预期Bool_Literal”。 但是,如果我将其更

    -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 这是我与

    1热度

    1回答

    我正在为Elixir实现类似jinja2的模板语言的初始设计阶段。我一直倾向于手动编写词法分析器,但最近我遇到了Erlang的leex模块。它看起来很有前途,但经过一些最初的研究后,我不确定它是否适合我的目的。 我的一个犹豫是一种模板语言,实质上是一种字符串嵌入式语言,但不清楚如何使用leex在这种情况下使用标记化。作为一个简单的例子,假设令牌化这个模板: <p>Here is some text