Ejemplo n.º 1
0
 public override void DoInstruction(ExpressionMediator exm, InstructionLine func, ProcessState state)
 {
     //int termnum = 0;
     //foreach (IOperandTerm term in ((ExpressionArrayArgument)func.Argument).TermList)
     //{
     //    string arg = term.GetStrValue(exm);
     //    StringStream aSt = new StringStream(arg);
     //    WordCollection wc = LexicalAnalyzer.Analyse(aSt, LexEndWith.EoL, false, false);
     //    exm.VEvaluator.SetResultX((ExpressionParser.ReduceIntegerTerm(wc, TermEndWith.EoL).GetIntValue(exm)), termnum);
     //    termnum++;
     //}
     //state.Return(exm.VEvaluator.RESULT);
     //if (state.ScriptEnd)
     //    return;
     //int termnum = 0;
     StringStream aSt = new StringStream(((ExpressionArgument)func.Argument).Term.GetStrValue(exm));
     List<long> termList = new List<long>();
     while (!aSt.EOS)
     {
         WordCollection wc = LexicalAnalyzer.Analyse(aSt, LexEndWith.Comma, false, false);
         //exm.VEvaluator.SetResultX(ExpressionParser.ReduceIntegerTerm(wc, TermEndWith.EoL).GetIntValue(exm), termnum++);
         termList.Add(ExpressionParser.ReduceIntegerTerm(wc, TermEndWith.EoL).GetIntValue(exm));
         aSt.ShiftNext();
         LexicalAnalyzer.SkipHalfSpace(aSt);
         //termnum++;
     }
     if (termList.Count == 0)
         termList.Add(0);
     exm.VEvaluator.SetResultX(termList);
     state.Return(exm.VEvaluator.RESULT);
     if (state.ScriptEnd)
         return;
 }
Ejemplo n.º 2
0
 public override void DoInstruction(ExpressionMediator exm, InstructionLine func, ProcessState state)
 {
     //int termnum = 0;
     ExpressionArrayArgument expArrayArg = (ExpressionArrayArgument)func.Argument;
     if (expArrayArg.TermList.Length == 0)
     {
         exm.VEvaluator.RESULT = 0;
         state.Return(0);
         return;
     }
     List<long> termList = new List<long>();
     foreach (IOperandTerm term in expArrayArg.TermList)
     {
         termList.Add(term.GetIntValue(exm));
         //exm.VEvaluator.SetResultX(term.GetIntValue(exm), termnum++);
     }
     if (termList.Count == 0)
         termList.Add(0);
     exm.VEvaluator.SetResultX(termList);
     state.Return(exm.VEvaluator.RESULT);
 }
Ejemplo n.º 3
0
 public override void DoInstruction(ExpressionMediator exm, InstructionLine func, ProcessState state)
 {
     string keyword = func.Argument.ConstStr;
     if (Config.ICFunction)//1756 BEGINのキーワードは関数扱いらしい
         keyword = keyword.ToUpper();
     state.SetBegin(keyword);
     state.Return(0);
     exm.Console.ResetStyle();
 }