///////////////////////////////////////////////////////////////////////////// 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; }
///////////////////////////////////////////////////////////////////////////// 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; }
public abstract string DumpUnnamedIndexExpression( UnnamedIndexExpression exp );
public abstract object EvalUnnamedIndexExpression( object obj, UnnamedIndexExpression exp );
///////////////////////////////////////////////////////////////////////////// public override string DumpUnnamedIndexExpression( UnnamedIndexExpression exp ) { return string.Format( "macro|[]result|()result[{0}]", Arguments(exp.Arguments) ); }