public boolean isSemanticPredicate() { return label.isSemanticPredicate(); }
public boolean isSemanticPredicate() { return label.isSemanticPredicate(); }
public boolean isSemanticPredicate() { return label.isSemanticPredicate(); }
public boolean isSemanticPredicate() { return label.isSemanticPredicate(); }
protected void createSpecialTable(DFAState s) { // number all special states from 0...n-1 instead of their usual numbers boolean hasSemPred = false; // TODO this code is very similar to canGenerateSwitch. Refactor to share for (int j = 0; j < s.getNumberOfTransitions(); j++) { Transition edge = (Transition) s.transition(j); Label label = edge.label; // can't do a switch if the edges have preds or are going to // require gated predicates if ( label.isSemanticPredicate() || ((DFAState)edge.target).getGatedPredicatesInNFAConfigurations()!=null) { hasSemPred = true; break; } } // if has pred or too big for table, make it special int smax = ((Integer)max.get(s.stateNumber)).intValue(); int smin = ((Integer)min.get(s.stateNumber)).intValue(); if ( hasSemPred || smax-smin>MAX_STATE_TRANSITIONS_FOR_TABLE ) { special.set(s.stateNumber, Utils.integer(uniqueCompressedSpecialStateNum)); uniqueCompressedSpecialStateNum++; specialStates.add(s); } else { special.set(s.stateNumber, Utils.integer(-1)); // not special } }
protected void createSpecialTable(DFAState s) { // number all special states from 0...n-1 instead of their usual numbers boolean hasSemPred = false; // TODO this code is very similar to canGenerateSwitch. Refactor to share for (int j = 0; j < s.getNumberOfTransitions(); j++) { Transition edge = (Transition) s.transition(j); Label label = edge.label; // can't do a switch if the edges have preds or are going to // require gated predicates if ( label.isSemanticPredicate() || ((DFAState)edge.target).getGatedPredicatesInNFAConfigurations()!=null) { hasSemPred = true; break; } } // if has pred or too big for table, make it special int smax = ((Integer)max.get(s.stateNumber)).intValue(); int smin = ((Integer)min.get(s.stateNumber)).intValue(); if ( hasSemPred || smax-smin>MAX_STATE_TRANSITIONS_FOR_TABLE ) { special.set(s.stateNumber, Utils.integer(uniqueCompressedSpecialStateNum)); uniqueCompressedSpecialStateNum++; specialStates.add(s); } else { special.set(s.stateNumber, Utils.integer(-1)); // not special } }
protected void createSpecialTable(DFAState s) { // number all special states from 0...n-1 instead of their usual numbers boolean hasSemPred = false; // TODO this code is very similar to canGenerateSwitch. Refactor to share for (int j = 0; j < s.getNumberOfTransitions(); j++) { Transition edge = s.transition(j); Label label = edge.label; // can't do a switch if the edges have preds or are going to // require gated predicates if ( label.isSemanticPredicate() || ((DFAState)edge.target).getGatedPredicatesInNFAConfigurations()!=null) { hasSemPred = true; break; } } // if has pred or too big for table, make it special int smax = max.get(s.stateNumber); int smin = min.get(s.stateNumber); if ( hasSemPred || smax-smin>MAX_STATE_TRANSITIONS_FOR_TABLE ) { special.set(s.stateNumber, Utils.integer(uniqueCompressedSpecialStateNum)); uniqueCompressedSpecialStateNum++; specialStates.add(s); } else { special.set(s.stateNumber, Utils.integer(-1)); // not special } }
protected void createSpecialTable(DFAState s) { // number all special states from 0...n-1 instead of their usual numbers boolean hasSemPred = false; // TODO this code is very similar to canGenerateSwitch. Refactor to share for (int j = 0; j < s.getNumberOfTransitions(); j++) { Transition edge = s.transition(j); Label label = edge.label; // can't do a switch if the edges have preds or are going to // require gated predicates if ( label.isSemanticPredicate() || ((DFAState)edge.target).getGatedPredicatesInNFAConfigurations()!=null) { hasSemPred = true; break; } } // if has pred or too big for table, make it special int smax = max.get(s.stateNumber); int smin = min.get(s.stateNumber); if ( hasSemPred || smax-smin>MAX_STATE_TRANSITIONS_FOR_TABLE ) { special.set(s.stateNumber, Utils.integer(uniqueCompressedSpecialStateNum)); uniqueCompressedSpecialStateNum++; specialStates.add(s); } else { special.set(s.stateNumber, Utils.integer(-1)); // not special } }
if ( !(transition0.label.isSemanticPredicate()|| transition0.label.isEpsilon()) ) { return null; SemanticContext p0; SemanticContext p1 = null; if ( transition0.label.isSemanticPredicate() ) {
if ( !(label.isEpsilon()||label.isSemanticPredicate()) ) {
if ( !(transition0.label.isSemanticPredicate()|| transition0.label.isEpsilon()) ) { return null; SemanticContext p0 = null; SemanticContext p1 = null; if ( transition0.label.isSemanticPredicate() ) {
if ( !(transition0.label.isSemanticPredicate()|| transition0.label.isEpsilon()) ) { return null; SemanticContext p0; SemanticContext p1 = null; if ( transition0.label.isSemanticPredicate() ) {
for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = (Transition) s.transition(i); if ( edge.label.isSemanticPredicate() ) { return false;
for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = s.transition(i); if ( edge.label.isSemanticPredicate() ) { return false;
for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = s.transition(i); if ( edge.label.isSemanticPredicate() ) { return false;
for (int i = 0; i < s.getNumberOfTransitions(); i++) { Transition edge = (Transition) s.transition(i); if ( edge.label.isSemanticPredicate() ) { return false;
/** Generate an expression for traversing an edge. */ protected StringTemplate genLabelExpr(StringTemplateGroup templates, Transition edge, int k) { Label label = edge.label; if ( label.isSemanticPredicate() ) { return genSemanticPredicateExpr(templates, edge); } if ( label.isSet() ) { return genSetExpr(templates, label.getSet(), k, true); } // must be simple label StringTemplate eST = templates.getInstanceOf("lookaheadTest"); eST.setAttribute("atom", getTokenTypeAsTargetLabel(label.getAtom())); eST.setAttribute("atomAsInt", Utils.integer(label.getAtom())); eST.setAttribute("k", Utils.integer(k)); return eST; }
/** Generate an expression for traversing an edge. */ protected ST genLabelExpr(STGroup templates, Transition edge, int k) { Label label = edge.label; if ( label.isSemanticPredicate() ) { return genSemanticPredicateExpr(templates, edge); } if ( label.isSet() ) { return genSetExpr(templates, label.getSet(), k, true); } // must be simple label ST eST = templates.getInstanceOf("lookaheadTest"); eST.add("atom", getTokenTypeAsTargetLabel(label.getAtom())); eST.add("atomAsInt", Utils.integer(label.getAtom())); eST.add("k", Utils.integer(k)); return eST; }
/** Generate an expression for traversing an edge. */ protected ST genLabelExpr(STGroup templates, Transition edge, int k) { Label label = edge.label; if ( label.isSemanticPredicate() ) { return genSemanticPredicateExpr(templates, edge); } if ( label.isSet() ) { return genSetExpr(templates, label.getSet(), k, true); } // must be simple label ST eST = templates.getInstanceOf("lookaheadTest"); eST.add("atom", getTokenTypeAsTargetLabel(label.getAtom())); eST.add("atomAsInt", Utils.integer(label.getAtom())); eST.add("k", Utils.integer(k)); return eST; }
/** Generate an expression for traversing an edge. */ protected StringTemplate genLabelExpr(StringTemplateGroup templates, Transition edge, int k) { Label label = edge.label; if ( label.isSemanticPredicate() ) { return genSemanticPredicateExpr(templates, edge); } if ( label.isSet() ) { return genSetExpr(templates, label.getSet(), k, true); } // must be simple label StringTemplate eST = templates.getInstanceOf("lookaheadTest"); eST.setAttribute("atom", getTokenTypeAsTargetLabel(label.getAtom())); eST.setAttribute("atomAsInt", Utils.integer(label.getAtom())); eST.setAttribute("k", Utils.integer(k)); return eST; }