diff options
Diffstat (limited to 'src/Compiler/Language.java')
-rw-r--r-- | src/Compiler/Language.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Compiler/Language.java b/src/Compiler/Language.java index 9151bd5..44168db 100644 --- a/src/Compiler/Language.java +++ b/src/Compiler/Language.java @@ -39,25 +39,34 @@ public class Language { } } - //Extract and print each token + //Function to take source code and output the result private static void runInterpreter(String sourceCode){ + + //Extract tokens from the source code TokenScanner scanner = new TokenScanner(); List<Token> tokens = scanner.extractTokens(sourceCode); //for (Token token : tokens) { // System.out.println(token); //} if (hadError) return; + //Parse into AST Parser parser = new Parser(tokens); List<Statement> ast = parser.parse(); if (hadError) return; + + //Translate AST into equivalent C code Translator translator = new Translator(); List<String> code = translator.compileToC(ast); if (hadError) return; + + //Execute created C code ExecuteC cExecutor = new ExecuteC(); cExecutor.compileAndExecuteC(code); } + + //Basic error reporting static void displayError(String message){ hadError=true; System.out.println("An error was encountered"); |