public override void EnterTypeStmt_Element(VBAParser.TypeStmt_ElementContext context) { var asTypeClause = context.asTypeClause(); var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); OnNewDeclaration(CreateDeclaration(context.identifier().GetText(), asTypeName, Accessibility.Implicit, DeclarationType.UserDefinedTypeMember, context, context.identifier().GetSelection())); }
// you cannot initialize elements inside a Structure // since VBA Type(s) are transformed in VB.NET Structure(s) // we remove the initialization of array public override void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { var currentType = Types.Peek(); if (context.subscripts() != null && !context.subscripts().IsEmpty) { InitStructures[currentType].Add($"ReDim {context.ambiguousIdentifier().GetText()}({context.subscripts().GetText()})"); StringBuilder commas = new StringBuilder(); Enumerable.Range(0, context.subscripts().subscript().Length - 1).ToList().ForEach(x => commas.Append(",")); Rewriter.Replace(context.subscripts().Start, context.subscripts().Stop, $"{commas.ToString()}"); } }