public override void ExitParExpression([NotNull] SBP.ParExpressionContext context) { var expressionScope = m_expressionData.PopStackLevel(); System.Diagnostics.Debug.Assert(expressionScope.Count == 1); // Until anything else has been seen... var data = expressionScope.Pop(); m_expressionData.Push(data); }
//public Expression PopStackLevelAsExpression() //{ // var exp = this.TryPopStackLevelAsExpression(); // //if (exp == null) throw new NullReferenceException(); // return exp; //} //public Expression TryPopStackLevelAsExpression() //{ // Expression value = null; // var stack = m_expressionData.PopStackLevel(); // if (stack.Count == 0) return null; // var exp = stack.Pop(); // exp = this.ResolveIfIdentifier(exp, m_inFunctionScope); // value = exp.ExpressionCode; // //if (value == null) // //{ // // switch (exp.ReferencedType) // // { // // case SBExpressionType.Constant: // // value = Expression.Constant(exp.Value); // // break; // // //case TSExpressionType.GlobalVariableReference: // // // break; // // //case TSExpressionType.LocalVariableReference: // // // break; // // //case TSExpressionType.PropertyReference: // // // break; // // //case TSExpressionType.MethodReference: // // // break; // // case SBExpressionType.Identifier: // // value = this.ResolveQualifiedIdentifier((string)exp.Value, true)?.ExpressionCode; // // break; // // default: // // throw new NotImplementedException(); // // } // //} // return value; //} public override void EnterParExpression([NotNull] SBP.ParExpressionContext context) { m_expressionData.PushStackLevel("EnterParExpression"); }