public override Statement VisitSTMR_Increment([NotNull] S_ScriptParser.STMR_IncrementContext context) { Statement.AssignmentType v = Statement.AssignmentType.PlusPlus; string LibName = context.name().unit_name().Length == 1 ? SystemNameSpaces.GLOBAL : context.name().unit_name()[0].GetText(); string VarName = context.name().unit_name().Length == 1 ? context.name().unit_name()[0].GetText() : context.name().unit_name()[1].GetText(); if (context.increment().PLUS() != null) { v = Statement.AssignmentType.PlusPlus; } else if (context.increment().MINUS() != null) { v = Statement.AssignmentType.MinusMinus; } Statement x = new Statement.Assignment(this._Host, this._Master, LibName, VarName, v); foreach (S_ScriptParser.ExpressionContext e in context.expression()) { Expression n = this._expr.Visit(e); x.Parameters.Add("F" + x.Parameters.Count.ToString(), n); } return(x); }
public override Statement VisitSTMR_Assign([NotNull] S_ScriptParser.STMR_AssignContext context) { Statement.AssignmentType v = Statement.AssignmentType.Equals; bool assign = context.assignment().ASSIGN() != null; string LibName = context.name().unit_name().Length == 1 ? SystemNameSpaces.GLOBAL : context.name().unit_name()[0].GetText(); string VarName = context.name().unit_name().Length == 1 ? context.name().unit_name()[0].GetText() : context.name().unit_name()[1].GetText(); if (this._Context.SpoolExists(LibName) && !this._Context[LibName].Exists(VarName)) { this._Context[LibName].Add(VarName); } if (assign && context.assignment().PLUS() != null) { v = Statement.AssignmentType.PlusEquals; } else if (assign && context.assignment().MINUS() != null) { v = Statement.AssignmentType.MinusEquals; } else if (assign && context.assignment().MUL() != null) { v = Statement.AssignmentType.MultEquals; } else if (assign && context.assignment().DIV() != null) { v = Statement.AssignmentType.DivEquals; } else if (assign && context.assignment().DIV2() != null) { v = Statement.AssignmentType.Div2Equals; } else if (assign && context.assignment().MOD() != null) { v = Statement.AssignmentType.ModEquals; } else if (assign && context.assignment().MOD2() != null) { v = Statement.AssignmentType.Mod2Equals; } // Check if we have a table // //if (v == Statement.AssignmentType.PlusEquals && this._Host.Spools.Exists(LibName) && this._Host.Spools[LibName].Exists(VarName) && this._Host.Spools[LibName][VarName].Affinity == CellAffinity.TREF) //{ // string tref = this._Host.Spools[LibName][VarName].valueTREF; // Table t = this._Host.OpenTable(tref); // Expression a = this._expr.Visit(context.expression()[0]); // bool ContainsAggregate = (a is Expression.ArrayLiteral && a.ContainsAggregate); // Statement s = null; // if (!ContainsAggregate) // { // s = new TableInsert.GenericTableInsert(this._Host, this._Master, t); // s.Parameters.Add(a); // } // else // { // s = new TableInsert.DictionGroupBy(this._Host, this._Master, t); // foreach(Expression exp in a.Children) // { // s.Parameters.Add(exp); // } // } // this._Master = s; // return s; //} Statement x = new Statement.Assignment(this._Host, this._Master, LibName, VarName, v); foreach (S_ScriptParser.ExpressionContext e in context.expression()) { Expression n = this._expr.Visit(e); x.Parameters.Add("F" + x.Parameters.Count.ToString(), n); } return(x); }