Exemple #1
0
		/////////////////////////////////////////////////////////////////////////////

		public override object EvalUnnamedIndexExpression( object objIn, UnnamedIndexExpression exp )
		{
			// ******
			//
			// expression:  macro.something[ x ][ y ], or macro.amethod( x )[ zz ]
			//
			object objResult = Invokers.EvalIndexerHelper( objIn, EvaluateArguments( exp.Arguments), typeHelpers );
			CheckNullResult( objResult, objIn, "method result expression" );
			return objResult;
		}
Exemple #2
0
		/////////////////////////////////////////////////////////////////////////////

		protected Expression IndexMember( bool isRootNode, string memberName, bool validToken, IInput input )
		{
			// ******
			Expression expression = null;

			//IArgumentsProcessor ap = new ArgumentsProcessor( argScanner, recognizer );
			IArgumentsProcessor ap = new ArgumentsProcessor( scanner, recognizer );

			//NmpStringList strArgs = argScanner( input, RecognizedCharType.CloseBracketChar );
			NmpStringList strArgs = scanner.ArgScanner( input, RecognizedCharType.CloseBracketChar );

			// ******
			if( ! validToken ) {
				//
				// IndexResult
				//
				return new UnnamedIndexExpression( ap, strArgs );
			}
			else {
				if( isRootNode ) {
					expression = new UnnamedIndexExpression(memberName, ap, strArgs );
				}
				else {
					expression = new IndexExpression( memberName, ap, strArgs );
				}
			}

			// ******
			return expression;
		}
Exemple #3
0
		public abstract string DumpUnnamedIndexExpression( UnnamedIndexExpression exp );
		public abstract object EvalUnnamedIndexExpression( object obj, UnnamedIndexExpression exp );
Exemple #5
0
		/////////////////////////////////////////////////////////////////////////////

		public override string DumpUnnamedIndexExpression( UnnamedIndexExpression exp )
		{
			return string.Format( "macro|[]result|()result[{0}]", Arguments(exp.Arguments) );
		}