/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Parser/ProgramParserVisitor.Function.cs
32 строки
1 KB
Ivan Kozhin
Change the way of identifiers and string literals handle
10 апр 2024, 20:10
10 апр 2024, 20:10
0c97794
Код
Авторство
О чём код?
using QueryCat.Backend.Ast; using QueryCat.Backend.Ast.Nodes; using QueryCat.Backend.Ast.Nodes.Function; namespace QueryCat.Backend.Parser; internal partial class ProgramParserVisitor { /// <inheritdoc /> public override IAstNode VisitFunctionSignature(QueryCatParser.FunctionSignatureContext context) => new FunctionSignatureNode( GetUnwrappedText(context.name), this.Visit<FunctionTypeNode>(context.functionType()), this.Visit<FunctionSignatureArgumentNode>(context.functionArg())); /// <inheritdoc /> public override IAstNode VisitFunctionType(QueryCatParser.FunctionTypeContext context) { return new FunctionTypeNode( this.Visit<TypeNode>(context.type()).Type, GetUnwrappedText(context.identifierSimple())); } /// <inheritdoc /> public override IAstNode VisitFunctionArg(QueryCatParser.FunctionArgContext context) => new FunctionSignatureArgumentNode( name: context.identifierSimple().GetText(), typeNode: this.Visit<FunctionTypeNode>(context.functionType()), defaultValue: this.Visit(context.@default, LiteralNode.NullValueNode).Value, isOptional: context.optional == null, isArray: context.isArray != null, isVariadic: context.variadic != null); }