Exemple #1
0
 private bool InterpreterCase(BaseCaseNode _case, ExpressionNode evaluationSwitch, SymbolTable table, FunctionTable functionTable, string flag)
 {
     if (flag == "case")
     {
         if (_case is CaseNode)
         {
             if (((CaseNode)_case).EvaluationNode.Evaluate(table) == evaluationSwitch.Evaluate(table))
             {
                 try
                 {
                     foreach (var statementNode in ((CaseNode)_case).CodeNode)
                     {
                         statementNode.Interpret(table, functionTable);
                     }
                 }
                 catch (BreakException)
                 {
                 }
                 return(true);
             }
             else
             {
                 return(InterpreterCase(_case.NextCase, evaluationSwitch, table, functionTable, "case"));
             }
         }
         else if (_case is DefauldNode)
         {
             return(InterpreterCase(_case.NextCase, evaluationSwitch, table, functionTable, "case"));
         }
         else
         {
             return(false);
         }
     }
     else if (flag == "defauld")
     {
         if (!(_case is DefauldNode))
         {
             return(InterpreterCase(_case.NextCase, evaluationSwitch, table, functionTable, "defauld"));
         }
         else
         {
             try
             {
                 foreach (var statementNode in ((DefauldNode)_case).CodeNode)
                 {
                     statementNode.Interpret(table, functionTable);
                 }
             }
             catch (BreakException)
             {
             }
             return(true);
         }
     }
     else
     {
         return(false);
     }
 }
Exemple #2
0
 public void SetListCase(BaseCaseNode _caseNode, BaseCaseNode _baseCaseNode)
 {
     if (_caseNode.NextCase == null)
     {
         _caseNode.NextCase = _baseCaseNode;
     }
     else
     {
         SetListCase(_caseNode.NextCase, _baseCaseNode);
     }
 }