'src/compiler/init.slate' fileIn. lobby addSlot: #lex. lobby addSlot: #par. lobby addSlot: #tmp. _@(lobby) dbgpar: statement [ | statem | statem: (ReadStream newOn: statement). lex: (Compiler Lexer newOn: statem). par: (Compiler Parser newOn: statem). tmp: par parseStatement. tmp ]. lobby addSlot: #source_writer. source_writer: Compiler SourceWriter clone. _@(lobby) rewrite: statement "For now, SourceWriter is bugy so that it is working only with numbers, binary selectors and keywords" [ dbgpar: statement. ConsoleOutput ; '\n=======================================\n'. source_writer print: tmp on: ConsoleOutput. ConsoleOutput ; '\n=======================================\n'. ]. _@(lobby) rewFile: filename "Open filename, and parse each statement, showing the result to the screen" [ | filestr | filestr: (FileStream newForInputNamed: filename). lex: (Compiler Lexer newOn: filestr). par: (Compiler Parser newOn: filestr). [ (tmp: par parseStatement) isNil ifFalse: [source_writer print: tmp on: ConsoleOutput]. ConsoleOutput ; '.\n'. tmp isNil ] whileFalse: [ tmp isNil ]. ].