private List <Declaration> GetExcelRangeDeclarations() { var excelDeclaration = new ProjectDeclaration(new QualifiedMemberName(new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "Excel"), "Excel"), "Excel", true); var globalDeclaration = new ClassModuleDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "_Global"), excelDeclaration, "_Global", true, null, null); var globalCoClassDeclarationAttributes = new Attributes(); globalCoClassDeclarationAttributes.AddPredeclaredIdTypeAttribute(); globalCoClassDeclarationAttributes.AddGlobalClassAttribute(); var globalCoClassDeclaration = new ClassModuleDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "Global"), "Global"), excelDeclaration, "Global", true, null, globalCoClassDeclarationAttributes); globalDeclaration.AddSubtype(globalCoClassDeclaration); globalCoClassDeclaration.AddSupertype(globalDeclaration); globalCoClassDeclaration.AddSupertype("_Global"); var rangeClassModuleDeclaration = new ClassModuleDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "Range"), "Range"), excelDeclaration, "Range", true, new List <IAnnotation>(), new Attributes()); var rangeDeclaration = new PropertyGetDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "Range"), globalDeclaration, globalDeclaration, "Range", null, null, Accessibility.Global, null, Selection.Home, false, true, new List <IAnnotation>(), new Attributes()); var firstParamDeclaration = new ParameterDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "Cell1"), rangeDeclaration, "Variant", null, null, false, false); var secondParamDeclaration = new ParameterDeclaration(new QualifiedMemberName( new QualifiedModuleName("Excel", "C:\\Program Files\\Microsoft Office\\Root\\Office 16\\EXCEL.EXE", "_Global"), "Cell2"), rangeDeclaration, "Variant", null, null, true, false); rangeDeclaration.AddParameter(firstParamDeclaration); rangeDeclaration.AddParameter(secondParamDeclaration); return(new List <Declaration> { excelDeclaration, globalDeclaration, globalCoClassDeclaration, rangeClassModuleDeclaration, rangeDeclaration, firstParamDeclaration, secondParamDeclaration, }); }
private string GetSignature(PropertyGetDeclaration member) { var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); signature += " Property Get " + member.IdentifierName + "("; var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name); return(signature + string.Join(", ", selectedParams) + ") As " + member.AsTypeName); }
private static (Declaration getter, Declaration writer) GetDeclarationsForProperty(QualifiedModuleName moduleName, Declaration moduleDeclaration, ComField item, Attributes attributes) { var getter = new PropertyGetDeclaration(item, moduleDeclaration, moduleName, attributes); if (item.Flags.HasFlag(VARFLAGS.VARFLAG_FREADONLY)) { return(getter, null); } if (item.IsReferenceType) { var setter = new PropertySetDeclaration(item, moduleDeclaration, moduleName, attributes); return(getter, setter); } var letter = new PropertyLetDeclaration(item, moduleDeclaration, moduleName, attributes); return(getter, letter); }
private List <Declaration> GetBuiltInDeclarations() { var vbaDeclaration = new ProjectDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "VBA"), "VBA"), "VBA", false, null); var conversionModule = new ProceduralModuleDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "Conversion"), "Conversion"), vbaDeclaration, "Conversion", false, new List <IAnnotation>(), new Attributes()); var fileSystemModule = new ProceduralModuleDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "FileSystem"), "FileSystem"), vbaDeclaration, "FileSystem", false, new List <IAnnotation>(), new Attributes()); var interactionModule = new ProceduralModuleDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "Interaction"), "Interaction"), vbaDeclaration, "Interaction", false, new List <IAnnotation>(), new Attributes()); var stringsModule = new ProceduralModuleDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "Strings"), "Strings"), vbaDeclaration, "Strings", false, new List <IAnnotation>(), new Attributes()); var dateTimeModule = new ProceduralModuleDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "DateTime"), "DateTime"), vbaDeclaration, "Strings", false, new List <IAnnotation>(), new Attributes()); var hiddenModule = new ProceduralModuleDeclaration( new QualifiedMemberName(new QualifiedModuleName("VBA", MockVbeBuilder.LibraryPathVBA, "_HiddenModule"), "_HiddenModule"), vbaDeclaration, "_HiddenModule", false, new List <IAnnotation>(), new Attributes()); var commandFunction = new FunctionDeclaration( new QualifiedMemberName(interactionModule.QualifiedName.QualifiedModuleName, "_B_var_Command"), interactionModule, interactionModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var environFunction = new FunctionDeclaration( new QualifiedMemberName(interactionModule.QualifiedName.QualifiedModuleName, "_B_var_Environ"), interactionModule, interactionModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var rtrimFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_RTrim"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var chrFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_Chr"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var formatFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_Format"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstFormatParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "Expression"), formatFunction, "Variant", null, null, false, true); var secondFormatParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "Format"), formatFunction, "Variant", null, null, true, true); var thirdFormatParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "FirstDayOfWeek"), formatFunction, "VbDayOfWeek", null, null, true, false); formatFunction.AddParameter(firstFormatParam); formatFunction.AddParameter(secondFormatParam); formatFunction.AddParameter(thirdFormatParam); var rightFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_Right"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstRightParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "String"), rightFunction, "Variant", null, null, false, true); rightFunction.AddParameter(firstRightParam); var lcaseFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_LCase"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var leftbFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_LeftB"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstLeftBParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "String"), leftbFunction, "Variant", null, null, false, true); leftbFunction.AddParameter(firstLeftBParam); var chrwFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_ChrW"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var leftFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_Left"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstLeftParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "String"), leftFunction, "Variant", null, null, false, true); leftFunction.AddParameter(firstLeftParam); var rightbFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_RightB"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstRightBParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "String"), rightbFunction, "Variant", null, null, false, true); rightbFunction.AddParameter(firstRightBParam); var midbFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_MidB"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstMidBParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "String"), midbFunction, "Variant", null, null, false, true); var secondMidBParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "Start"), midbFunction, "Long", null, null, false, false); midbFunction.AddParameter(firstMidBParam); midbFunction.AddParameter(secondMidBParam); var ucaseFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_UCase"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var trimFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_Trim"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var ltrimFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_LTrim"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var midFunction = new FunctionDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "_B_var_Mid"), stringsModule, stringsModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstMidParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "String"), midFunction, "Variant", null, null, false, true); var secondMidParam = new ParameterDeclaration( new QualifiedMemberName(stringsModule.QualifiedName.QualifiedModuleName, "Start"), midFunction, "Long", null, null, false, false); midFunction.AddParameter(firstMidParam); midFunction.AddParameter(secondMidParam); var hexFunction = new FunctionDeclaration( new QualifiedMemberName(conversionModule.QualifiedName.QualifiedModuleName, "_B_var_Hex"), conversionModule, conversionModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var octFunction = new FunctionDeclaration( new QualifiedMemberName(conversionModule.QualifiedName.QualifiedModuleName, "_B_var_Oct"), conversionModule, conversionModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var errorFunction = new FunctionDeclaration( new QualifiedMemberName(conversionModule.QualifiedName.QualifiedModuleName, "_B_var_Error"), conversionModule, conversionModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var strFunction = new FunctionDeclaration( new QualifiedMemberName(conversionModule.QualifiedName.QualifiedModuleName, "_B_var_Str"), conversionModule, conversionModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var curDirFunction = new FunctionDeclaration( new QualifiedMemberName(fileSystemModule.QualifiedName.QualifiedModuleName, "_B_var_CurDir"), fileSystemModule, fileSystemModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var datePropertyGet = new PropertyGetDeclaration( new QualifiedMemberName(dateTimeModule.QualifiedName.QualifiedModuleName, "Date"), dateTimeModule, dateTimeModule, "Variant", null, string.Empty, Accessibility.Global, null, null, new Selection(), false, false, new List <IAnnotation>(), new Attributes()); var timePropertyGet = new PropertyGetDeclaration( new QualifiedMemberName(dateTimeModule.QualifiedName.QualifiedModuleName, "Time"), dateTimeModule, dateTimeModule, "Variant", null, string.Empty, Accessibility.Global, null, null, new Selection(), false, false, new List <IAnnotation>(), new Attributes()); var inputbFunction = new FunctionDeclaration( new QualifiedMemberName(hiddenModule.QualifiedName.QualifiedModuleName, "_B_var_InputB"), hiddenModule, hiddenModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstInputBParam = new ParameterDeclaration( new QualifiedMemberName(hiddenModule.QualifiedName.QualifiedModuleName, "Number"), inputbFunction, "Long", null, null, false, true); var secondInputBParam = new ParameterDeclaration( new QualifiedMemberName(hiddenModule.QualifiedName.QualifiedModuleName, "FileNumber"), inputbFunction, "Integer", null, null, false, true); inputbFunction.AddParameter(firstInputBParam); inputbFunction.AddParameter(secondInputBParam); var inputFunction = new FunctionDeclaration( new QualifiedMemberName(hiddenModule.QualifiedName.QualifiedModuleName, "_B_var_Input"), hiddenModule, hiddenModule, "Variant", null, null, Accessibility.Global, null, null, Selection.Home, false, false, new List <IAnnotation>(), new Attributes()); var firstInputParam = new ParameterDeclaration( new QualifiedMemberName(hiddenModule.QualifiedName.QualifiedModuleName, "Number"), inputFunction, "Long", null, null, false, true); var secondInputParam = new ParameterDeclaration( new QualifiedMemberName(hiddenModule.QualifiedName.QualifiedModuleName, "FileNumber"), inputFunction, "Integer", null, null, false, true); inputFunction.AddParameter(firstInputParam); inputFunction.AddParameter(secondInputParam); return(new List <Declaration> { vbaDeclaration, conversionModule, fileSystemModule, interactionModule, stringsModule, dateTimeModule, hiddenModule, commandFunction, environFunction, rtrimFunction, chrFunction, formatFunction, firstFormatParam, secondFormatParam, thirdFormatParam, rightFunction, firstRightParam, lcaseFunction, leftbFunction, firstLeftBParam, chrwFunction, leftFunction, firstLeftParam, rightbFunction, firstRightBParam, midbFunction, firstMidBParam, secondMidBParam, ucaseFunction, trimFunction, ltrimFunction, midFunction, firstMidParam, secondMidParam, hexFunction, octFunction, errorFunction, strFunction, curDirFunction, datePropertyGet, timePropertyGet, inputbFunction, firstInputBParam, secondInputBParam, inputFunction, firstInputParam, secondInputParam }); }
public virtual T Visit(PropertyGetDeclaration stmt) => Visit(stmt as PropertyDeclaration);