Example #1
0
        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);
            }
        }
Example #2
0
 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);
 }
Example #3
0
 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);
 }
Example #4
0
 public ServerConfiguration(ICompilerEnvironment environment)
 {
     _environment = environment;
 }