Ejemplo n.º 1
0
        private void IncludeScript(List <ASTClassDefinition> classDeclarations, List <ASTFunctionBase> functionDeclarations, List <ASTGlobalVariableAssignment> globalVars)
        {
            // include "script.soup";
            // get script name
            var name = Require(TokenType.STRING).Text;

            Require(TokenType.SEMICOLON);
            name = !Path.IsPathRooted(name) ? Path.Combine(_fileHandler.WorkingDirectory, name) : name;
            var parser         = new Parser(new Lexer(_fileHandler.ReadFileToEnd(name)), _fileHandler.Copy(Path.GetDirectoryName(name)));
            var includedScript = parser.ParseScript();

            for (int i = 0; i < includedScript.Classes.Count; i++)
            {
                classDeclarations.Add(includedScript.Classes[i]);
            }

            for (int i = 0; i < includedScript.Functions.Count; i++)
            {
                functionDeclarations.Add(includedScript.Functions[i]);
            }

            for (int i = 0; i < includedScript.GlobalVars.Count; i++)
            {
                globalVars.Add(includedScript.GlobalVars[i]);
            }
        }