public override object VisitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context) { if (context.structuredBodyNameLine().errorStructuredName() == null && context.structuredBodyEndLine() != null && (context.errorStructureLine() == null || context.errorStructureLine().Length == 0) && (context.structuredBodyContentLine() != null && context.structuredBodyContentLine().Length > 0)) { var bodys = context.structuredBodyContentLine(); foreach (var body in bodys) { if (body.expressionInStructure() != null) { FillInExpression(body.expressionInStructure()); } else { // KeyValueStructuredLine var structureKey = body.keyValueStructureLine().STRUCTURE_IDENTIFIER(); var structureValues = body.keyValueStructureLine().keyValueStructureValue(); var typeName = context.structuredBodyNameLine().STRUCTURE_NAME().GetText().Trim(); foreach (var structureValue in structureValues) { foreach (var expression in structureValue.expressionInStructure()) { FillInExpression(expression); } } FillInProperties(structureKey.GetText().Trim(), structureValues, typeName); } } } return(null); }
public override object VisitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context) { if (context.structuredBodyNameLine().errorStructuredName() == null && context.structuredBodyEndLine() != null && (context.errorStructureLine() == null || context.errorStructureLine().Length == 0) && (context.structuredBodyContentLine() != null && context.structuredBodyContentLine().Length > 0)) { var bodys = context.structuredBodyContentLine(); foreach (var body in bodys) { if (body.expressionInStructure() != null) { FillInExpression(body.expressionInStructure()); } else { // KeyValueStructuredLine var structureValues = body.keyValueStructureLine().keyValueStructureValue(); foreach (var structureValue in structureValues) { foreach (var expression in structureValue.expressionInStructure()) { FillInExpression(expression); } } } } } return(null); }
public override List <Diagnostic> VisitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context) { var result = new List <Diagnostic>(); var errorName = context.structuredBodyNameLine().errorStructuredName(); if (errorName != null) { result.Add(BuildLGDiagnostic(TemplateErrors.InvalidStrucName(errorName.GetText()), context: context.structuredBodyNameLine())); } if (context.structuredBodyEndLine() == null) { result.Add(BuildLGDiagnostic(TemplateErrors.MissingStrucEnd, context: context)); } var errors = context.errorStructureLine(); if (errors != null && errors.Length > 0) { foreach (var error in errors) { result.Add(BuildLGDiagnostic(TemplateErrors.InvalidStrucBody(error.GetText()), context: error)); } } else { var bodys = context.structuredBodyContentLine(); if (bodys == null || bodys.Length == 0) { result.Add(BuildLGDiagnostic(TemplateErrors.EmptyStrucContent, context: context)); } else { foreach (var body in bodys) { if (body.expressionInStructure() != null) { result.AddRange(CheckExpression(body.expressionInStructure())); } else { // KeyValueStructuredLine var structureValues = body.keyValueStructureLine().keyValueStructureValue(); var errorPrefix = "Property '" + body.keyValueStructureLine().STRUCTURE_IDENTIFIER().GetText() + "':"; foreach (var structureValue in structureValues) { foreach (var expression in structureValue.expressionInStructure()) { result.AddRange(CheckExpression(expression, errorPrefix)); } } } } } } return(result); }