예제 #1
0
        public override void EnterField_declaration(CSharpParser.Field_declarationContext context)
        {
            var fieldNameStr = context.variable_declarators().variable_declarator().First().GetText();
            var fieldName    = FieldName.FieldFqnFromNames(
                fieldNameStr,
                _parentClassName.FullyQualified,
                _typeName);

            Console.WriteLine($"Parse Field: {fieldNameStr} of {_typeName}");

            FieldInfo = new FieldInfo(
                fieldName,
                _parentClassName,
                AccessFlags.None,
                new SourceCodeSnippet(context.GetFullText(), SourceCodeLanguage.CSharp));
        }
예제 #2
0
        public override void EnterFieldDeclaration(JavaParser.FieldDeclarationContext context)
        {
            PrimitiveTypeName primitiveTypeName = null;
            string            qualifiedName     = "";

            if (context.typeType() != null)
            {
                TypeTypeListener typeTypeListener = new TypeTypeListener();
                context.typeType().EnterRule(typeTypeListener);
                primitiveTypeName = typeTypeListener.PrimitiveTypeName;
                qualifiedName     = typeTypeListener.QualifiedName;
            }

            List <string> IDs = new List <string>();

            if (context.variableDeclarators() != null)
            {
                VariableDeclaratorsListener variableDeclaratorsListener = new VariableDeclaratorsListener();
                context.variableDeclarators().EnterRule(variableDeclaratorsListener);
                IDs = variableDeclaratorsListener.IDs;
            }

            if (primitiveTypeName == null && string.IsNullOrEmpty(qualifiedName))
            {
                primitiveTypeName = PrimitiveTypeName.Void;
            }

            string    fieldName = IDs.FirstOrDefault();
            FieldName fieldFqn  = FieldName.FieldFqnFromNames(
                fieldName,
                parentClassName.FullyQualified,
                primitiveTypeName != null
                    ? primitiveTypeName.FullyQualified
                    : TypeName.For(qualifiedName).FullyQualified);

            FieldInfo = new FieldInfo(
                fieldFqn,
                parentClassName,
                AccessFlags.AccPublic,
                new SourceCodeSnippet(context.GetFullText(), SourceCodeLanguage.Java));
        }