Package org.antlr.misc

Examples of org.antlr.misc.IntervalSet


    String result = s.toString();
    assertEquals(expecting, result);
  }

  @Test public void testMergeWithDoubleOverlap() throws Exception {
    IntervalSet s = IntervalSet.of(1,10);
    s.add(20,30);
    s.add(5,25); // overlaps two!
    String expecting = "1..30";
    String result = s.toString();
    assertEquals(result, expecting);
  }
View Full Code Here


    String result = s.toString();
    assertEquals(result, expecting);
  }

  @Test public void testSize() throws Exception {
    IntervalSet s = IntervalSet.of(20,30);
    s.add(50,55);
    s.add(5,19);
    String expecting = "32";
    String result = String.valueOf(s.size());
    assertEquals(result, expecting);
  }
View Full Code Here

    String result = String.valueOf(s.size());
    assertEquals(result, expecting);
  }

  @Test public void testToList() throws Exception {
    IntervalSet s = IntervalSet.of(20,25);
    s.add(50,55);
    s.add(5,5);
    String expecting = "[5, 20, 21, 22, 23, 24, 25, 50, 51, 52, 53, 54, 55]";
    String result = String.valueOf(s.toList());
    assertEquals(result, expecting);
  }
View Full Code Here

      {'\u0000'..'q', 's'}!!!! broken...
     'q' is 113 ascii
     'u' is 117
  */
  @Test public void testNotRIntersectionNotT() throws Exception {
    IntervalSet s = IntervalSet.of(0,'s');
    s.add('u',200);
    IntervalSet s2 = IntervalSet.of(0,'q');
    s2.add('s',200);
    String expecting = "{0..113, 115, 117..200}";
    String result = (s.and(s2)).toString();
    assertEquals(result, expecting);
  }
View Full Code Here

  public Object clone() {
    Label l;
    try {
      l = (Label)super.clone();
      l.label = this.label;
            l.labelSet = new IntervalSet();
      l.labelSet.addAll(this.labelSet);
    }
    catch (CloneNotSupportedException e) {
      throw new InternalError();
    }
View Full Code Here

*/
public class LookaheadSet {
  public IntervalSet tokenTypeSet;

  public LookaheadSet() {
    tokenTypeSet = new IntervalSet();
  }
View Full Code Here

            smax = label.getAtom();
          }
        }
      }
      else if ( label.isSet() ) {
        IntervalSet labels = (IntervalSet)label.getSet();
        int lmin = labels.getMinElement();
        // if valid char (don't do EOF) and less than current min
        if ( lmin<smin && lmin>=Label.MIN_CHAR_VALUE ) {
          smin = labels.getMinElement();
        }
        if ( labels.getMaxElement()>smax ) {
          smax = labels.getMaxElement();
        }
      }
    }

    if ( smax<0 ) {
View Full Code Here

        int labelIndex = label.getAtom()-smin; // offset from 0
        stateTransitions.set(labelIndex,
                   Utils.integer(edge.target.stateNumber));
      }
      else if ( label.isSet() ) {
        IntervalSet labels = (IntervalSet)label.getSet();
        int[] atoms = labels.toArray();
        for (int a = 0; a < atoms.length; a++) {
          // set the transition if the label is valid (don't do EOF)
          if ( atoms[a]>=Label.MIN_CHAR_VALUE ) {
            int labelIndex = atoms[a]-smin; // offset from 0
            stateTransitions.set(labelIndex,
View Full Code Here

          // eof[s] points to accept state
          eof.set(s.stateNumber, Utils.integer(edge.target.stateNumber));
        }
      }
      else if ( label.isSet() ) {
        IntervalSet labels = (IntervalSet)label.getSet();
        int[] atoms = labels.toArray();
        for (int a = 0; a < atoms.length; a++) {
          if ( atoms[a]==Label.EOT ) {
            // eot[s] points to accept state
            eot.set(s.stateNumber, Utils.integer(edge.target.stateNumber));
          }
View Full Code Here

    this.decisionNumber = decisionNumber;
    this.decisionNFAStartState = decisionStartState;
    initAltRelatedInfo();
    unreachableAlts = null;
    for (Iterator it = edgeMap.keySet().iterator(); it.hasNext();) {
      IntervalSet edge = (IntervalSet)it.next();
      List<Integer> alts = edgeMap.get(edge);
      Collections.sort(alts); // make sure alts are attempted in order
      //System.out.println(edge+" -> "+alts);
      DFAState s = newState();
      s.k = 1;
View Full Code Here

TOP

Related Classes of org.antlr.misc.IntervalSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.