Package org.sablecc.sablecc.lrautomaton

Examples of org.sablecc.sablecc.lrautomaton.Element


            }

            String prodName = this.currentProduction.getNameToken().getText();

            // is it left recursive?
            Element element = grammarAlternative.getElement(0);
            if (element instanceof ProductionElement
                    && ((ProductionElement) element).getProduction().getName()
                            .equals(prodName)) {
                // check that recursion is followed by token
                if (grammarAlternative.getElements().size() < 2
View Full Code Here


                    MReduce mReduce = mAction.newReduce(alt_CamelCaseFullName);

                    ArrayList<Element> elements = alternative.getElements();
                    int elementCount = elements.size();
                    for (int i = elementCount - 1; i >= 0; i--) {
                        Element element = elements.get(i);
                        String element_CamelCaseName = to_CamelCase(element
                                .getName());
                        String element_CamelCaseType = null;
                        boolean elementIsEndToken;
                        if (element instanceof TokenElement) {
                            TokenElement tokenElement = (TokenElement) element;
                            if (tokenElement.getToken().getName()
                                    .equals("$end")) {
                                elementIsEndToken = true;
                            }
                            else {
                                MatchedToken matchedToken = context
                                        .getMatchedToken(tokenElement
                                                .getToken().getName());
                                if (matchedToken instanceof NameToken) {
                                    NameToken nameToken = (NameToken) matchedToken;
                                    element_CamelCaseType = nameToken
                                            .get_CamelCaseName();
                                }
                                else {
                                    AnonymousToken anonymousToken = (AnonymousToken) matchedToken;

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

                                elementIsEndToken = false;
                            }
                        }
                        else {
                            ProductionElement productionElement = (ProductionElement) element;
                            element_CamelCaseType = to_CamelCase(productionElement
                                    .getProduction().getName());

                            elementIsEndToken = false;
                        }

                        if (elementIsEndToken) {
                            mReduce.newReduceEndPop();
                        }
                        else {
                            mReduce.newReduceNormalPop(element_CamelCaseType,
                                    element_CamelCaseName);
                        }
                    }

                    if (alt_CamelCaseFullName.equals("$Start")) {
                        mReduce.newAcceptDecision(to_CamelCase(elements.get(0)
                                .getName()));
                    }
                    else {
                        MReduceDecision mReduceDecision = mReduce
                                .newReduceDecision();

                        for (Element element : elements) {
                            String element_CamelCaseName = to_CamelCase(element
                                    .getName());
                            boolean elementIsEndToken;
                            if (element instanceof TokenElement) {
                                TokenElement tokenElement = (TokenElement) element;
                                if (tokenElement.getToken().getName().equals(
View Full Code Here

TOP

Related Classes of org.sablecc.sablecc.lrautomaton.Element

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.