Пример #1
0
        public override PNode evaluate(PNode evaluateMe, PatternMatcher successfulMatch)
        {
            PatternMatcher match = successfulMatch;

            //	Extract the "arguments" from the PatternMatcher.
            List <PNode> M            = match.Matching;                 //	The pattern -> prose index from the match
            TypeNameWord typeNameWord = ((TypeNameWord)M[1].value);
            string       methodName   = ((StringLiteralObject)M[4].value).literal;

            RawWord[] newMethodWord;
            if (M[6].value is RawWordObject)
            {
                newMethodWord = ((RawWordObject)M[6].value).RawWords;
            }
            else
            {
                newMethodWord = ((Word)M[6].value).RawWords;
            }
            BindMethodAction action = new BindMethodAction(typeNameWord, methodName, newMethodWord);

            value    = new ProseObject[3];
            value[0] = M[0].value;
            value[1] = action;
            value[2] = M[7].value;

            PNode ret = replaceWithValueAt(evaluateMe, successfulMatch);

            value = null;
            return(ret);
        }
Пример #2
0
 public void performAction(ProseRuntime runtime)
 {
     //	Look up the type.
     Type type = assemblyWord.AssemblyObject.GetType(typeName);
     TypeNameWord typeNameWord = new TypeNameWord(rawWords, runtime, type);
     runtime.addWord(typeNameWord);
 }
Пример #3
0
        public void performAction(ProseRuntime runtime)
        {
            //	Look up the type.
            Type         type         = assemblyWord.AssemblyObject.GetType(typeName);
            TypeNameWord typeNameWord = new TypeNameWord(rawWords, runtime, type);

            runtime.addWord(typeNameWord);
        }
Пример #4
0
 public BindMethodAction(TypeNameWord typeWord, string methodName, RawWord[] rawWords)
 {
     this.typeWord   = typeWord;
     this.methodName = methodName;
     this.rawWords   = rawWords;
 }
Пример #5
0
 public BindMethodAction(TypeNameWord typeWord, string methodName, RawWord[] rawWords)
 {
     this.typeWord = typeWord;
     this.methodName = methodName;
     this.rawWords = rawWords;
 }