using meowlang.parser.antlr; namespace meowlang.parser; public class ConstraintRuleVisitorNya : MeowBaseVisitorNya { public override ConstraintRuleModel VisitEmbedConstraintRule(MeowParser.EmbedConstraintRuleContext context) { var name = context.name.Text; var types = context._types.Select(x => new TypeReferenceVisitorNya().Visit(x)).ToList(); return new EmbedConstraintRuleModel(context.GetSpan(), name, types); } public override ConstraintRuleModel VisitFunctionConstraintRule(MeowParser.FunctionConstraintRuleContext context) { var name = context.name.Text; var parameters = context.constraintFunctionParameters().typeReference() .Select(x => new TypeReferenceVisitorNya().Visit(x)).ToList(); var returns = context.functionReturn()?.typeReference().Select(x => new TypeReferenceVisitorNya().Visit(x)).ToList() ?? new List(); return new FunctionConstraintRuleModel(context.GetSpan(), name, parameters, returns); } }