protected virtual void applySyntactical() { Debug.Assert(_root != null); _root = pass("syntactical-extensions", _root, _scope); if (_syntactical.Any()) { _root = syntacticalTransform(_root, _scope, _syntactical); } do { _root = applyNodeChanges(_root, CompilerStage.Syntactical); } while (_syntacticalChanges.Any()); //add modules before going into semantics ICompilerEnvironment environment = _scope.find <ICompilerEnvironment>(); if (environment != null) { _root = addModules(_root, environment.modules()); } //see if there is more syntax work to do _root = pass("after-syntax", _root, _scope); while (_syntacticalChanges.Any()) { _root = applyNodeChanges(_root, CompilerStage.Syntactical); } }
public RoslynCompiler(ICompilerEnvironment environment, Scope scope = null) : base(new RoslynLexicalAnalysis(), new RoslynSyntaxAnalysis(), new RoslynSemanticAnalysis(), environment, new InstanceAnalisysBase <SyntaxToken, SyntaxNode, SemanticModel>(), scope) { _scope.set <ICompilerService <SyntaxToken, SyntaxNode, SemanticModel> >(new CompilerService()); _scope.set <ICompilerEnvironment>(environment); }
public CompilerBase(ILexicalAnalysis <TToken, TNode, TModel> lexical, ISyntaxAnalysis <TToken, TNode, TModel> syntax, ISemanticAnalysis <TToken, TNode, TModel> semantics, ICompilerEnvironment environment, IInstanceAnalisys <TNode> instance, Scope scope) { _lexical = lexical; _syntax = syntax; _semantics = semantics; _environment = environment; _instance = instance; _scope = new Scope(scope); }
public ServerConfiguration(ICompilerEnvironment environment) { _environment = environment; }