示例#1
0
            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);
            }
示例#2
0
        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);
        }
            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);
            }