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"); } }
virtual public RusticToken ToToken(RusticParser parser, string captured) { object result = value(parser, captured); return(result is RusticToken token ? token : new RusticToken(mode, result)); }
public void ParseAndPutTokens(string expression) { RusticParser parser = new RusticParser(context); PutTokens(Enumerable.ToArray(parser.GetTokenList(expression))); }