Examples of Production


Examples of net.sourceforge.chaperon.model.grammar.Production

    assertTrue("Test if grammar contains productions", grammar.contains(p1));
    assertTrue("Test if grammar contains productions", grammar.contains(p2));

    assertTrue("Test if production are not equal", !p1.equals(p2));

    Production p3 = new Production(F);
    p3.getDefinition().addSymbol(E);
    p3.getDefinition().addSymbol(a);
    p3.getDefinition().addSymbol(E);

    assertEquals("Test if production are equal", p1, p3);
    assertTrue("Test if grammar contains productions", grammar.contains(p3));

    assertEquals("Test production indices", 0, grammar.indexOf(p1));
View Full Code Here

Examples of net.sourceforge.chaperon.model.grammar.Production

    S = new Nonterminal("S");
    C = new Nonterminal("C");

    grammar = new Grammar();

    Production production = new Production(S);
    production.getDefinition().addSymbol(C);
    production.getDefinition().addSymbol(C);
    grammar.addProduction(production);

    production = new Production(C);
    production.getDefinition().addSymbol(c);
    production.getDefinition().addSymbol(C);
    grammar.addProduction(production);

    production = new Production(C);
    production.getDefinition().addSymbol(d);
    grammar.addProduction(production);

    grammar.setStartSymbol(S);

    firstsets = new FirstSetCollection(grammar);
View Full Code Here

Examples of net.sourceforge.chaperon.model.grammar.Production

    Nonterminal C = new Nonterminal("C");
    Nonterminal D = new Nonterminal("D");

    grammar = new Grammar();

    Production production = new Production(A);
    production.getDefinition().addSymbol(B);
    production.getDefinition().addSymbol(a);
    grammar.addProduction(production);

    production = new Production(B);
    production.getDefinition().addSymbol(b);
    grammar.addProduction(production);

    production = new Production(C);
    production.getDefinition().addSymbol(B);
    production.getDefinition().addSymbol(D);
    grammar.addProduction(production);

    production = new Production(D);

    // empty
    grammar.addProduction(production);

    firstsets = new FirstSetCollection(grammar);

    set = new ItemSet(grammar, firstsets);
    set.addItem(0, 0, c);

    result = new ItemSet(grammar, firstsets);
    result.addItem(0, 0, c);
    result.addItem(1, 0, a);

    assertEquals("Test if sets are equal", result, set.closure());

    set = new ItemSet(grammar, firstsets);
    set.addItem(2, 0, a);

    result = new ItemSet(grammar, firstsets);
    result.addItem(2, 0, a);
    result.addItem(1, 0, a);

    assertEquals("Test if sets are equal", result, set.closure());

    // ---- Case 3 ----
    grammar = new Grammar();

    production = new Production(A);
    production.getDefinition().addSymbol(B);
    production.getDefinition().addSymbol(D);
    grammar.addProduction(production);

    production = new Production(B);
    production.getDefinition().addSymbol(C);
    grammar.addProduction(production);

    production = new Production(C);
    production.getDefinition().addSymbol(d);
    grammar.addProduction(production);

    production = new Production(D);
    production.getDefinition().addSymbol(b);
    grammar.addProduction(production);

    firstsets = new FirstSetCollection(grammar);

    set = new ItemSet(grammar, firstsets);
View Full Code Here

Examples of net.sourceforge.chaperon.model.grammar.Production

    F = new Nonterminal("F");

    grammar = new Grammar();

    // E -> T E'
    Production production = new Production(E);
    production.getDefinition().addSymbol(T);
    production.getDefinition().addSymbol(Eprime);
    grammar.addProduction(production);

    // E' -> + T E'
    production = new Production(Eprime);
    production.getDefinition().addSymbol(plus);
    production.getDefinition().addSymbol(T);
    production.getDefinition().addSymbol(Eprime);
    grammar.addProduction(production);

    // E' ->
    production = new Production(Eprime);
    grammar.addProduction(production);

    // T -> F T'
    production = new Production(T);
    production.getDefinition().addSymbol(F);
    production.getDefinition().addSymbol(Tprime);
    grammar.addProduction(production);

    // T' -> * F T'
    production = new Production(Tprime);
    production.getDefinition().addSymbol(mult);
    production.getDefinition().addSymbol(F);
    production.getDefinition().addSymbol(Tprime);
    grammar.addProduction(production);

    // T' ->
    production = new Production(Tprime);
    grammar.addProduction(production);

    // F -> bopen E bclose
    production = new Production(F);
    production.getDefinition().addSymbol(bopen);
    production.getDefinition().addSymbol(E);
    production.getDefinition().addSymbol(bclose);
    grammar.addProduction(production);

    // F -> id
    production = new Production(F);
    production.getDefinition().addSymbol(id);
    grammar.addProduction(production);
  }
View Full Code Here

Examples of org.sablecc.sablecc.lrautomaton.Production

                }
            }

            for (Entry<Production, LRState> entry : state
                    .getProductionTransitions().entrySet()) {
                Production production = entry.getKey();
                LRState target = entry.getValue();

                String production_CamelCaseName = to_CamelCase(production
                        .getName());
                mLrStateSingleton.newProductionLrTransitionTarget(
                        production_CamelCaseName, target.getName());
            }

            Map<Integer, MDistance> distanceMap = new LinkedHashMap<Integer, MDistance>();
            boolean isLr1OrMore = false;
            for (Action action : state.getActions()) {
                int maxLookahead = action.getMaxLookahead();
                while (maxLookahead > distanceMap.size() - 1) {
                    int distance = distanceMap.size();
                    distanceMap.put(distance, mLrStateSingleton.newDistance(""
                            + distance));
                }

                MDistance mDistance = distanceMap.get(maxLookahead);
                MAction mAction = mDistance.newAction();
                if (maxLookahead > 0) {
                    isLr1OrMore = true;
                    for (Entry<Integer, Set<Item>> entry : action
                            .getDistanceToItemSetMap().entrySet()) {
                        String ahead = "" + entry.getKey();
                        Set<Item> items = entry.getValue();
                        Set<Token> tokens = new LinkedHashSet<Token>();
                        for (Item item : items) {
                            tokens.add(item.getTokenElement().getToken());
                        }

                        if (tokens.size() == 0) {
                            mAction.newFalseGroup();
                        }
                        else {
                            MNormalGroup mNormalGroup = mAction
                                    .newNormalGroup();

                            for (Token token : tokens) {
                                if (token.getName().equals("$end")) {
                                    mNormalGroup.newEndCondition(ahead);
                                }
                                else {
                                    MatchedToken matchedToken = context
                                            .getMatchedToken(token.getName());
                                    String element_CamelCaseType;
                                    if (matchedToken instanceof NameToken) {
                                        NameToken nameToken = (NameToken) matchedToken;
                                        element_CamelCaseType = nameToken
                                                .get_CamelCaseName();
                                    }
                                    else {
                                        AnonymousToken anonymousToken = (AnonymousToken) matchedToken;

                                        element_CamelCaseType = ""
                                                + anonymousToken
                                                        .get_CamelCaseName();
                                    }

                                    mNormalGroup.newNormalCondition(ahead,
                                            element_CamelCaseType);
                                }
                            }
                        }
                    }
                }

                if (action.getType() == ActionType.SHIFT) {
                    mAction.newShift();
                }
                else {
                    ReduceAction reduceAction = (ReduceAction) action;
                    Alternative alternative = reduceAction.getAlternative();
                    Production production = alternative.getProduction();
                    String production_CamelCaseName = to_CamelCase(production
                            .getName());
                    String alt_CamelCaseName = to_CamelCase(alternative
                            .getName());
                    String alt_CamelCaseFullName = production_CamelCaseName
                            + (alt_CamelCaseName.equals("") ? "" : "_"
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.