public AstNamespace GetNamespace(string codeText) { if (InitializeCompiler("Namespace", codeText) == false) { return(null); } var progressTitle = CompileProgressTitle("Namespace"); try { RootParseNode = RootParseNode.ChildNodes[0]; var symbol = GMacValueAccessGenerator.Translate_Direct(Context, RootParseNode, RoleNames.Namespace); this.ReportNormal(progressTitle, symbol.SymbolAccessName, ProgressEventArgsResult.Success); return(new AstNamespace(symbol as GMacNamespace)); } catch (Exception e) { this.ReportError(progressTitle, e); return(null); } }
public AstDatastoreValueAccess GetMacroParameterValueAccess(AstMacro macroInfo, string codeText) { if (InitializeCompiler(macroInfo.AssociatedMacro.ChildScope, "Macro Parameter Value Access", codeText) == false) { return(null); } var progressTitle = CompileProgressTitle("Macro Parameter Value Access"); try { RootParseNode = RootParseNode.ChildNodes[0]; var valueAccess = GMacValueAccessGenerator.Translate_LValue_MacroParameter(Context, RootParseNode, macroInfo.AssociatedMacro); this.ReportNormal(progressTitle, valueAccess.GetName(), ProgressEventArgsResult.Success); return(new AstDatastoreValueAccess(valueAccess)); } catch (Exception e) { this.ReportError(progressTitle, e); return(null); } }
public AstDatastoreValueAccess GetDataStoreValueAccess(string codeText) { if (InitializeCompiler("Data-store Value Access", codeText) == false) { return(null); } var progressTitle = CompileProgressTitle("Data-store Value Access"); try { RootParseNode = RootParseNode.ChildNodes[0]; var valueAccess = GMacValueAccessGenerator.Translate(Context, RootParseNode, false); if (valueAccess.RootSymbolAsDataStore == null) { this.ReportNormal(progressTitle, codeText, ProgressEventArgsResult.Failure); return(null); } this.ReportNormal(progressTitle, valueAccess.GetName(), ProgressEventArgsResult.Success); return(new AstDatastoreValueAccess(valueAccess)); } catch (Exception e) { this.ReportError(progressTitle, e); return(null); } }
public AstSymbol GetSymbol(string codeText, IEnumerable <string> allowedRoleNames) { if (InitializeCompiler("Symbol", codeText) == false) { return(null); } var progressTitle = CompileProgressTitle("Symbol"); try { RootParseNode = RootParseNode.ChildNodes[0]; var symbol = GMacValueAccessGenerator.Translate_Direct(Context, RootParseNode, allowedRoleNames); this.ReportNormal(progressTitle, symbol.SymbolAccessName, ProgressEventArgsResult.Success); return(symbol.ToAstSymbol()); } catch (Exception e) { this.ReportError(progressTitle, e); return(null); } }
public AstType GetGMacType(string codeText) { if (InitializeCompiler("GMac Type", codeText) == false) { return(null); } var progressTitle = CompileProgressTitle("GMac Type"); try { RootParseNode = RootParseNode.ChildNodes[0]; var symbol = GMacValueAccessGenerator.Translate_Direct_LanguageType(Context, RootParseNode); this.ReportNormal(progressTitle, symbol.TypeSignature, ProgressEventArgsResult.Success); return(new AstType(symbol)); } catch (Exception e) { this.ReportError(progressTitle, e); return(null); } }
public AstDatastoreValueAccess GetMacroParameterValueAccess(string codeText) { var progressTitle = InitProgressTitle("Macro Parameter Value Access"); var mainScope = RefResContext.MainScope as ScopeSymbolChild; if (mainScope == null) { this.ReportNormal(progressTitle, codeText, false); return(null); } var macro = mainScope.ParentLanguageSymbolWithScope as GMacMacro; if (macro == null) { this.ReportNormal(progressTitle, codeText, false); return(null); } if (InitializeCompiler(codeText, GMacSourceParser.ParseQualifiedItem, mainScope) == false) { this.ReportNormal(progressTitle, codeText, false); return(null); } progressTitle = CompileProgressTitle("Macro Parameter Value Access"); try { RootParseNode = RootParseNode.ChildNodes[0]; var valueAccess = GMacValueAccessGenerator.Translate_LValue_MacroParameter(Context, RootParseNode, macro); this.ReportNormal(progressTitle, valueAccess.GetName(), ProgressEventArgsResult.Success); return(new AstDatastoreValueAccess(valueAccess)); } catch (Exception e) { this.ReportError(progressTitle, e); return(null); } }