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: +++ [ > ++