ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = ((TokenModel) tokens.get(i)).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList stateList = new ArrayList();
/** * Method that has to create a deep copy of the model, without * sharing any of existing Objects. */ public ModelNode cloneModel() { return new ConcatModel(mLeftModel.cloneModel(), mRightModel.cloneModel()); }
private ModelNode rewrite(ContentSpec[] specs, int first, int last) { // 3 or less, can convert and create; 4 or more, need to recurse: int count = last - first; if (count > 3) { int mid = (last + first + 1) >> 1; return new ConcatModel(rewrite(specs, first, mid), rewrite(specs, mid, last)); } ConcatModel model = new ConcatModel(specs[first].rewrite(), specs[first+1].rewrite()); if (count == 3) { model = new ConcatModel(model, specs[first+2].rewrite()); } return model; }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = ((TokenModel) tokens.get(i)).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList stateList = new ArrayList();
public ModelNode rewrite() { /* First, need to create a tree of sub-models, consisting of * binary concat nodes (as opposed to n-ary list). Can do that * recursively (note that we'll always have at least 2 child * nodes!) */ ModelNode model = rewrite(mContentSpecs, 0, mContentSpecs.length); // and then resolve arity modifiers, if necessary: if (mArity == '*') { return new StarModel(model); } if (mArity == '?') { return new OptionalModel(model); } if (mArity == '+') { return new ConcatModel(model, new StarModel(model.cloneModel())); } return model; }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = tokens.get(i).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList<DFAState> stateList = new ArrayList<DFAState>();
public ModelNode rewrite() { TokenModel model = new TokenModel(mElemName); if (mArity == '*') { return new StarModel(model); } if (mArity == '?') { return new OptionalModel(model); } if (mArity == '+') { return new ConcatModel(model, new StarModel(new TokenModel(mElemName))); } return model; }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = tokens.get(i).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList<DFAState> stateList = new ArrayList<DFAState>();
public ModelNode rewrite() { // First, need to convert sub-specs: ContentSpec[] specs = mContentSpecs; int len = specs.length; ModelNode[] models = new ModelNode[len]; for (int i = 0; i < len; ++i) { models[i] = specs[i].rewrite(); } ChoiceModel model = new ChoiceModel(models); // and then resolve arity modifiers, if necessary: if (mArity == '*') { return new StarModel(model); } if (mArity == '?') { return new OptionalModel(model); } if (mArity == '+') { return new ConcatModel(model, new StarModel(model.cloneModel())); } return model; }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = ((TokenModel) tokens.get(i)).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList stateList = new ArrayList();
private ModelNode rewrite(ContentSpec[] specs, int first, int last) { // 3 or less, can convert and create; 4 or more, need to recurse: int count = last - first; if (count > 3) { int mid = (last + first + 1) >> 1; return new ConcatModel(rewrite(specs, first, mid), rewrite(specs, mid, last)); } ConcatModel model = new ConcatModel(specs[first].rewrite(), specs[first+1].rewrite()); if (count == 3) { model = new ConcatModel(model, specs[first+2].rewrite()); } return model; }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = ((TokenModel) tokens.get(i)).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList stateList = new ArrayList();
/** * Method that has to create a deep copy of the model, without * sharing any of existing Objects. */ public ModelNode cloneModel() { return new ConcatModel(mLeftModel.cloneModel(), mRightModel.cloneModel()); }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = ((TokenModel) tokens.get(i)).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList stateList = new ArrayList();
/** * Method that has to create a deep copy of the model, without * sharing any of existing Objects. */ @Override public ModelNode cloneModel() { return new ConcatModel(mLeftModel.cloneModel(), mRightModel.cloneModel()); }
ConcatModel dummyRoot = new ConcatModel(modelRoot, eofToken); dummyRoot.indexTokens(tokens); tokenNames[i] = tokens.get(i).getName(); dummyRoot.calcFollowPos(followPos); dummyRoot.addFirstPos(initial); DFAState firstState = new DFAState(0, initial); ArrayList<DFAState> stateList = new ArrayList<DFAState>();
/** * Method that has to create a deep copy of the model, without * sharing any of existing Objects. */ @Override public ModelNode cloneModel() { return new ConcatModel(mLeftModel.cloneModel(), mRightModel.cloneModel()); }
private ModelNode rewrite(ContentSpec[] specs, int first, int last) { // 3 or less, can convert and create; 4 or more, need to recurse: int count = last - first; if (count > 3) { int mid = (last + first + 1) >> 1; return new ConcatModel(rewrite(specs, first, mid), rewrite(specs, mid, last)); } ConcatModel model = new ConcatModel(specs[first].rewrite(), specs[first+1].rewrite()); if (count == 3) { model = new ConcatModel(model, specs[first+2].rewrite()); } return model; }
/** * Method that has to create a deep copy of the model, without * sharing any of existing Objects. */ public ModelNode cloneModel() { return new ConcatModel(mLeftModel.cloneModel(), mRightModel.cloneModel()); }
/** * Method that has to create a deep copy of the model, without * sharing any of existing Objects. */ public ModelNode cloneModel() { return new ConcatModel(mLeftModel.cloneModel(), mRightModel.cloneModel()); }