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]); } }