zoukankan      html  css  js  c++  java
  • Proj THUDBFuzz Paper Reading: LL (*): The foundation of the ANTLR parser generator

    Notes







    4 LLstar Parsers

    1. ANTLR使用语义predicate来实现语法predicate
    2. 在确定具体走哪个分支之前,ANTLR不会执行action和语法predicate这种可能有后效性的代码块。对于必须要在推测,也即执行DFA推断的时候就加载的代码块,antlr3提供了语法{{}}

    5 LLstart Grammar Analysis

    5.1 Augmented transition networks

    语法分析有点类似inter-procedural flow analysis。这里,一个configuration可以视为一个当前所在的图节点和为了到达该节点所积累的call stack。具体来说,ATN configuration = (p, i, (gamma), (pi)),这里p指ATN state, i指当前预测的production编号,(gamma)指ATN call stack,(pi)可能存在的predicate

    5.2 Modified subset construction algo

    5.3 Avoid analysis intractability

    递归规则使得解析有陷入Loop,不停机的风险。有两种明显的策略:1. 只记录top m个states,以此停止计算 2. 只理会前m次递归。本文采用第2种,直接忽略>m次递归的推导,因为这样一般就够用了

    5.4 Aborting DFA construction

    如果某个Nonterminal对应的子规则有两条或以上都包含递归,那么我们认为DFA很有可能无法建模这个符号,此时,我们使用LL(1)+backtrack策略

  • 相关阅读:
    bzoj 3944 Sum
    [BZOJ2693]jzptab
    luogu 3768 简单的数学题
    [ZJOI2015]幻想乡战略游戏
    [SDOI2017]数字表格
    [ZJOI2007]Hide 捉迷藏
    [SDOI2016]游戏
    [SPOJ10707]Count on a tree II
    [Luogu4177][CEOI2008]order
    [BZOJ4491]我也不知道题目名字是什么
  • 原文地址:https://www.cnblogs.com/xuesu/p/14697591.html
Copyright © 2011-2022 走看看