Examples of BNFState


Examples of ca.gobits.bnf.parser.states.BNFState

    return true;
  }
 
  public boolean hasNextSequence()
  {
    BNFState state = null;
   
    if (position < stateDefinition.getStates().size()) {
      state = stateDefinition.getStates().get(position);
    }
   
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

    return state != null;
  }
 
  public BNFState getNextSequence() {
   
    BNFState state = null;
   
    if (position < stateDefinition.getStates().size()) {
      state = stateDefinition.getStates().get(position);
      position++;
    }
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

  }

  @Override
  public BNFState getNextState() {
   
    BNFState state = null;
   
    if (position < stateDefinition.getStates().size()) {
      state = stateDefinition.getStates().get(position).getNextState();
    }
   
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

    return states.size() > 1;
  }
 
  public BNFState getFirstState() {
   
    BNFState state = null;
   
    if (!states.isEmpty()) {
      state = states.get(0);
    }
   
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

  }
 
  private boolean parseStateDefinition(BNFToken token) {
    boolean success = false;
    BNFPathStateDefinition sd = (BNFPathStateDefinition) stack.peek();
    BNFState state = sd.getNextSequence();
    if (state != null) {
      success = true;
      pushToStack(state, token);
    }
   
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

  }
 
  private void parseState(BNFParseResultImpl result) {
   
    BNFPathState sp = (BNFPathState) stack.peek();
    BNFState state = sp.getState();
    BNFToken token = sp.getToken();
   
    if (!state.isTerminal()) {
     
      BNFStateDefinition sd = stateDefinitions.get(state.getName());
     
      if (sd == null) {
        throw new RuntimeException("unknown state " + state.getName());
      }
     
      pushToStackOrFirstState(token, sd);
     
    } else if (state.getClass().equals(BNFStateEmpty.class)) {
     
      if (isEmpty(token)) {
        result.setSuccess(true);
      }
     
      BNFState rewindState = stack.rewindStackEmptyState();
      pushToStack(rewindState, token);
     
    } else if (state.match(token)) {

      result.setSuccess(true);
      token = token.getNextToken();
      result.setMaxMatchToken(token);
     
      BNFState rewindState = stack.rewindStackMatchedToken();
      pushToStack(rewindState, token);
                   
    } else {
     
      result.setSuccess(false);
      BNFState nextState = stack.rewindStackUnmatchedToken();
      pushToStack(nextState, token);
    }
  }
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

  {
    List<BNFState> c = new ArrayList<BNFState>(states.length);
   
    for (String s : states) {

      BNFState firstState = null;
      BNFState previousState = null;
      String[] split = s.trim().split(" ");

      for (String ss : split) {

        BNFState state = createState(ss);
       
        if (firstState == null) {
          firstState = state;
        }
       
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

    if (name.endsWith("*")) {
      repetition = BNFRepetition.ZERO_OR_MORE;
      name = name.substring(0, name.length() - 1);
    }
   
    BNFState state = createStateInstance(name, isTerminal);
    state.setName(name);
    state.setRepetition(repetition);
   
    return state;
  }
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

   
    return state;
  }

  private BNFState createStateInstance(String ss, boolean terminal) {
    BNFState state = null;

    if (terminal) {
      state = new BNFStateTerminal();
    } else if (ss.equals("Number")) {
      state = new BNFStateNumber();
    } else if (ss.equals("QuotedString")) {
      state = new BNFStateQuotedString();
    } else if (ss.equals("Empty")) {
      state = new BNFStateEmpty();
    } else {
      state = new BNFState();
    }
   
    return state;
  }
View Full Code Here

Examples of ca.gobits.bnf.parser.states.BNFState

  /**
   * Rewinds to next state or next Repetition
   */
  public BNFState rewindStackMatchedToken() {
   
    BNFState nextState = null;
   
    while (!isEmpty()) {
     
      BNFPath sp = peek()
     
      if (!sp.isStateDefinition()) {
       
        BNFPathState bps = (BNFPathState) pop();
        BNFState state = bps.getState();
        nextState = state.getNextState();     
     
        if (state.getRepetition() != BNFRepetition.NONE) {
          nextState = state;
        }
       
        if (nextState != null) {
          break;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.