public LookaheadSet LOOK(NFAState s) { if ( NFAToDFAConverter.debug ) { System.out.println("> LOOK("+s+")"); } lookBusy.clear(); LookaheadSet look = _FIRST(s, true); // FOLLOW makes no sense (at the moment!) for lexical rules. if ( grammar.type!=Grammar.LEXER && look.member(Label.EOR_TOKEN_TYPE) ) { // avoid altering FIRST reset as it is cached LookaheadSet f = FOLLOW(s.enclosingRule); f.orInPlace(look); f.remove(Label.EOR_TOKEN_TYPE); look = f; //look.orInPlace(FOLLOW(s.enclosingRule)); } else if ( grammar.type==Grammar.LEXER && look.member(Label.EOT) ) { // if this has EOT, lookahead is all char (all char can follow rule) //look = new LookaheadSet(Label.EOT); look = new LookaheadSet(IntervalSet.COMPLETE_SET); } if ( NFAToDFAConverter.debug ) { System.out.println("< LOOK("+s+")="+look.toString(grammar)); } return look; }
follow = new LookaheadSet(); if ( follow.member(Label.EOF) ) { follow.remove(Label.EOF);
LookaheadSet collision = altLook[i].intersection(altLook[j]); if ( !collision.isNil() ) {
public LookaheadSet intersection(LookaheadSet s) { IntSet i = this.tokenTypeSet.and(s.tokenTypeSet); LookaheadSet intersection = new LookaheadSet(i); return intersection; }
@Override public String toString() { return toString(null); } }
NFAState afterDOWN = (NFAState)((GrammarAST)retval.start).NFATreeDownState.transition(0).target; LookaheadSet s = grammar.LOOK(afterDOWN); if ( s.member(Label.UP) ) {
follow = new LookaheadSet(); if ( follow.member(Label.EOF) ) { follow.remove(Label.EOF);
LookaheadSet collision = altLook[i].intersection(altLook[j]); if ( !collision.isNil() ) {
public LookaheadSet intersection(LookaheadSet s) { IntSet i = this.tokenTypeSet.and(s.tokenTypeSet); LookaheadSet intersection = new LookaheadSet(i); return intersection; }
@Override public String toString() { return toString(null); } }
NFAState afterDOWN = (NFAState)((GrammarAST)retval.start).NFATreeDownState.transition(0).target; LookaheadSet s = grammar.LOOK(afterDOWN); if ( s.member(Label.UP) ) {
public LookaheadSet LOOK(NFAState s) { if ( NFAToDFAConverter.debug ) { System.out.println("> LOOK("+s+")"); } lookBusy.clear(); LookaheadSet look = _FIRST(s, true); // FOLLOW makes no sense (at the moment!) for lexical rules. if ( grammar.type!=Grammar.LEXER && look.member(Label.EOR_TOKEN_TYPE) ) { // avoid altering FIRST reset as it is cached LookaheadSet f = FOLLOW(s.enclosingRule); f.orInPlace(look); f.remove(Label.EOR_TOKEN_TYPE); look = f; //look.orInPlace(FOLLOW(s.enclosingRule)); } else if ( grammar.type==Grammar.LEXER && look.member(Label.EOT) ) { // if this has EOT, lookahead is all char (all char can follow rule) //look = new LookaheadSet(Label.EOT); look = new LookaheadSet(IntervalSet.COMPLETE_SET); } if ( NFAToDFAConverter.debug ) { System.out.println("< LOOK("+s+")="+look.toString(grammar)); } return look; }
follow = new LookaheadSet(); if ( follow.member(Label.EOF) ) { follow.remove(Label.EOF);
LookaheadSet collision = altLook[i].intersection(altLook[j]); if ( !collision.isNil() ) {
public LookaheadSet intersection(LookaheadSet s) { IntSet i = this.tokenTypeSet.and(s.tokenTypeSet); LookaheadSet intersection = new LookaheadSet(i); return intersection; }
public String toString() { return toString(null); } }
NFAState afterDOWN = (NFAState)tree_AST_in.NFATreeDownState.transition(0).target; LookaheadSet s = grammar.LOOK(afterDOWN); if ( s.member(Label.UP) ) {
public LookaheadSet LOOK(NFAState s) { if ( NFAToDFAConverter.debug ) { System.out.println("> LOOK("+s+")"); } lookBusy.clear(); LookaheadSet look = _FIRST(s, true); // FOLLOW makes no sense (at the moment!) for lexical rules. if ( grammar.type!=Grammar.LEXER && look.member(Label.EOR_TOKEN_TYPE) ) { // avoid altering FIRST reset as it is cached LookaheadSet f = FOLLOW(s.enclosingRule); f.orInPlace(look); f.remove(Label.EOR_TOKEN_TYPE); look = f; //look.orInPlace(FOLLOW(s.enclosingRule)); } else if ( grammar.type==Grammar.LEXER && look.member(Label.EOT) ) { // if this has EOT, lookahead is all char (all char can follow rule) //look = new LookaheadSet(Label.EOT); look = new LookaheadSet(IntervalSet.COMPLETE_SET); } if ( NFAToDFAConverter.debug ) { System.out.println("< LOOK("+s+")="+look.toString(grammar)); } return look; }
follow = new LookaheadSet(); if ( follow.member(Label.EOF) ) { follow.remove(Label.EOF);
LookaheadSet collision = altLook[i].intersection(altLook[j]); if ( !collision.isNil() ) {