代码之家  ›  专栏  ›  技术社区  ›  Sam

用于分析IF语句的MGrammar

  •  0
  • Sam  · 技术社区  · 17 年前

    伪代码支持if-then-else语法,我一直无法找到令人满意的解析方法。确切的结构是。。。

    IF expression operator expression THEN
    Statement1
    Statement2
    Statementn
    ELSEIF expression operator expression THEN
    Statement1
    Statement2
    Statementn
    ELSE
    Statement1
    Statement2
    Statementn
    ENDIF

    到目前为止,我得到的是: `语法语句=r:ReturnClause=>r|
    i:IfClause=>我|
    ei:ElseifClause=>ei|
    e: ELSCLUSE=>e|
    结束:EndClause=>结束|
    v:表达式=>v


    语法ElseifClause=Elseif name:标识符运算符:运算符然后语句:语句=>ElseIf[名称、运算符,然后是[语句];

    但是,“Then”和“Else”后面的语句不够贪婪,只捕获解析树中的第一条语句。

    是否有人尝试使用MGrammar实现If语句的解析,或者有任何建议??

    1 回复  |  直到 17 年前
        1
  •  0
  •   Lars Corneliussen    16 年前

    您可以在codeplex上的原型项目中找到(几乎)完整的C#4.0语法。丹·范德布姆写这篇文章是为了准备他的新语言代码“原型”。

    http://archetype.codeplex.com/