public LL1OptionalBlockSingleAlt(OutputModelFactory factory,
GrammarAST blkAST,
List<CodeBlockForAlt> alts)
{
super(factory, blkAST, alts);
this.decision = ((DecisionState)blkAST.atnState).decision;
/** Lookahead for each alt 1..n */
// IntervalSet[] altLookSets = LinearApproximator.getLL1LookaheadSets(dfa);
IntervalSet[] altLookSets = factory.getGrammar().decisionLOOK.get(decision);
altLook = getAltLookaheadAsStringLists(altLookSets);
IntervalSet look = altLookSets[0];
IntervalSet followLook = altLookSets[1];
IntervalSet expecting = look.or(followLook);
this.error = getThrowNoViableAlt(factory, blkAST, expecting);
expr = addCodeForLookaheadTempVar(look);
followExpr = factory.getLL1Test(followLook, blkAST);
}
LL1OptionalBlockSingleAlt.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:codebuff
作者:
评论列表
文章目录