static void OutputError <T>(ITriggerMsg e, GenericExpression <T> expr) { string error = expr.ErrorMessage; if (expr.ErrorPosition >= 0) { error += " | Postion: " + expr.ErrorPosition; } e.Reply(error); }
// examples: return x; insert y; delete z; protected internal virtual Parser <string> KeywordExpressionStatement(string keyword) => from key in Keyword(keyword).Token() from expr in GenericExpression.XOptional() from semicolon in Parse.Char(';') select expr.GetOrDefault();