예제 #1
0
        static object StringToTypeCastOperation(RusticParser parser, string capture)
        {
            string name = capture.Trim('(', ')');

            if (parser.context.availableTypeCasts != null && parser.context.availableTypeCasts.ContainsKey(name))
            {
                return(new Operations.PrefixUnary.TypeCast(parser.context.availableTypeCasts[name]));
            }
            else
            {
                throw new Exception($"Invalid type cast, '{name}' is not available as a type");
            }
        }
예제 #2
0
            virtual public RusticToken ToToken(RusticParser parser, string captured)
            {
                object result = value(parser, captured);

                return(result is RusticToken token ? token : new RusticToken(mode, result));
            }
예제 #3
0
        public void ParseAndPutTokens(string expression)
        {
            RusticParser parser = new RusticParser(context);

            PutTokens(Enumerable.ToArray(parser.GetTokenList(expression)));
        }