Ejemplo n.º 1
0
        public string Visit(NSwitchStmt nSwitchStmt)
        {
            string retVal  = "";
            string exitAll = GenerateLabel();
            Node   testVar = nSwitchStmt[0];

            retVal += Visit((dynamic)testVar);
            NCaseList nCaseList = (NCaseList)nSwitchStmt[1];

            retVal += Visit((dynamic)nCaseList, exitAll);
            NStmtList nStmtList = (NStmtList)nSwitchStmt[2];

            retVal += Visit((dynamic)nStmtList);
            retVal += exitAll + ":\n";
            retVal += "\t\tpop\n";
            return(retVal);
        }
Ejemplo n.º 2
0
        // Return NSwitchStmt
        public Node SwitchStmt()
        {
            NSwitchStmt nSwitchStmt = new NSwitchStmt();

            Expect(TokenCategory.SWITCH);
            Expect(TokenCategory.PARENTHESIS_LEFT);
            nSwitchStmt.Add(Expr());
            Expect(TokenCategory.PARENTHESIS_RIGHT);
            Expect(TokenCategory.CURLY_BRACE_LEFT);
            NCaseList nCaseList = new NCaseList();

            while (CurrentToken == TokenCategory.CASE)
            {
                nCaseList.Add(Case());
            }
            nSwitchStmt.Add(nCaseList);
            if (CurrentToken == TokenCategory.DEFAULT)
            {
                nSwitchStmt.Add(Default());
            }
            Expect(TokenCategory.CURLY_BRACE_RIGHT);
            return(nSwitchStmt);
        }
Ejemplo n.º 3
0
//------------------------------------------------------------
        public void Visit(NSwitchStmt node)
        {
            Console.WriteLine($"+++++++++++++++ NSwitchStmt ++++++++++++++++");

            VisitChildren(node);
        }
 public void Visit(NSwitchStmt nSwitchStmt)
 {
     GenericChildVisitor(nSwitchStmt);
 }