ll

    0热度

    1回答

    对于不LL(1)或LR(1)一个人如何可以尝试找出是否某些数量n存在使得语法可LL(n)或LR(n)语言? 通过查看LR(0)项目的规范集合来检查语法是否为LR(0)。然后,假设它不是LR(0),可以通过引入lookahead符号来检查它是否为LR(1)。我的简单推理告诉我,为了检查它是否为LR(2),您可能必须使前瞻包含接下来的两个符号而不是一个。对于LR(3),您必须考虑三个符号等。 即使这种

    0热度

    1回答

    我的任务是计算FIRST和FOLLOW集以下语法: P ::= S CS . S ::= (int , int) CS ::= C CS | epsilon C ::= left int | right int | low C 我得到了以下第一组: FIRST(S) = {'('} FIRST(C) = {left,right,low} FIRST(CS) = {left,right

    1热度

    1回答

    我读了我的笔记之一,准备博士入学考试。大写字母不是终端,小写字母是终端。 我们有两个语法像: G1: S-->bSa | aSb | ba G2: S-->XYa X-->a | Yb Y--> c | epsilon 我记的说: G1不是LL(1)语法,但G2是LL(1) Grammar.I知道了一些关于LL(1),但我觉得这个例子对我来说并不明显。任何人都可以为我简化

    2热度

    1回答

    假设LL语法 STATEMENT ::= ε | R R :: = print (variable) 的一大块,我试图找到第一(声明) FIRST(STATEMENT) = FIRST(ε) + FIRST(R) FIRST(R) = { print (variable) } 我的问题是。 FIRST(R)是否正确?或以下: FIRST(R) = {print}

    0热度

    1回答

    P → PL | L L → N; | M; | C N → print E M → print "W" W → TW | ε C → if E {P} | if E {P} else {P} E → (EOE) | V (note: this has a variable O) O → + | - | * V → 0 | 1 | 2 | 3 (note: this has a t

    0热度

    1回答

    我相信读它的每个人都熟悉其他模糊不清的问题。所以我会跳过解释。 我在一本编译器书(dragon book)上找到了代表IF和ELSE的不含糊语法。这里是。 stmt->matched_stmt | open_stmt matched_stmt->if exp then matched_stmt else matched_stmt | other open_stmt->if exp then s

    0热度

    2回答

    我想写一个语法分析器,目前有一个LL语法(在Antlr中)下面的产品,我试图解析一个或多个(数字或字符串)是分离的由一个“#”即是正确的联想。我该如何修改这些作品,以便它可以解析由“#”分隔的一个或多个字符串,而不仅仅是一个?对于这个语法语言 A ::= B | Number | String B ::= C "->" A C ::= Number | Str

    2热度

    1回答

    如何消除以下类型的左递归?我似乎无法在这个特定的规则上应用一般规则。 A -> A | a | b 通过使用删除规则你: A -> aA' | bA' A' -> A' | epsilon 仍然有左递归。 这是说什么关于语法是/不是LL(1)? 谢谢。

    0热度

    1回答

    我对这本教科书很难接受,而且我的教授认为回答问题对已经知道进入课堂的材料的学生是不公平的(从这个人获得的反馈是一个数据挖掘过程本身)。无论如何,我的问题围绕着CFG(正式语言/函数式编程类)的派生。 Given a context free grammar that looks like: S-> a|B B-> b|C C-> c 找到最左边的推导。是简单的吗?因为S-> a是S->

    0热度

    1回答

    我目前正在为C-编译一个编译器。我目前正在研究解析器,出于某种原因,我似乎无法解决EXPRESSION生产中第一次碰撞(终端ID)的问题。下面,是我现在语法的一个子集,是否有人能指出我如何解决冲突(或转换为等价的LL(1)可解析语法)的正确方向。 EXPRESSION -> id VAR eq EXPRESSION | SIMPLEEXPRESSION VAR -> lbracket EXPR