llvm-6502/projects/Stacker/lib/compiler
Reid Spencer 68a24bdba4 Implement PR614:
These changes modify the makefiles so that the output of flex and bison are
placed in the SRC directory, not the OBJ directory. It is intended that they
be checked in as any other LLVM source so that platforms without convenient
access to flex/bison can be compiled. From now on, if you change a .y or
.l file you *must* also commit the generated .cpp and .h files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23115 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-27 18:50:39 +00:00
..
Lexer.cpp Implement PR614: 2005-08-27 18:50:39 +00:00
Lexer.l
Makefile Implement PR614: 2005-08-27 18:50:39 +00:00
README
StackerCompiler.cpp WHILE does not "pop" a value, it "examines" to top of stack. Make this 2005-05-04 15:33:48 +00:00
StackerCompiler.h Eliminate tabs and trailing spaces 2005-04-23 21:26:11 +00:00
StackerParser.cpp Implement PR614: 2005-08-27 18:50:39 +00:00
StackerParser.h Implement PR614: 2005-08-27 18:50:39 +00:00
StackerParser.y

This directory contains a sample language front end for LLVM.

It is a *very* simple/crude implementation of FORTH. It has many
deficiencies but provides enough basics to give you an idea of 
what programming a new language front end for LLVM  looks like.

To keep things simple, Stacker has the following limitations:
1. Only a single, global stack is manipulated.
2. There is no interpretation, everything is compiled.
3. There's no type/bounds checking .. you're on your own.
4. There's no floating point support.
5. Only stdin can be read. Only stdout can be written. No other 
   file I/O is supported.

As such, this isn't a very useful language for anything other than
the most trivial of programs. It is, however, a good learning tool
(for both the author and the student).

Reid Spencer
16 November 2003