diff options
author | Tucker Evans <tuckerevans24@gmail.com> | 2019-10-16 13:52:07 -0400 |
---|---|---|
committer | Tucker Evans <tuckerevans24@gmail.com> | 2019-10-16 19:51:21 -0400 |
commit | 053f99fbbf907defd238170cddcebe2493374dbf (patch) | |
tree | 808123ef310b2bafde99e14afd461a75877fab9a | |
parent | 5e11a31e4434331e038b97eaaa992ba65e24811a (diff) |
Add readme
-rw-r--r-- | makefile | 1 | ||||
-rw-r--r-- | pc.1 | 23 | ||||
-rw-r--r-- | readme.txt | 41 |
3 files changed, 65 insertions, 0 deletions
@@ -57,4 +57,5 @@ tar: headers pc.y pc.l tree.c scope.c node.c pc.c sem_check.c gen_code.c pascal_compiler/tree.h \ pascal_compiler/sem_check.c \ pascal_compiler/sem_check.h \ + pascal_compiler/readme.txt \ pascal_compiler/makefile @@ -0,0 +1,23 @@ +.TH PC 1 "2019 October 17" "PC 0.1.1" "PC Manual" +.SH NAME +pc - Pascal Compiler + +.SH SYNOPSIS +.nf +\fBpc\fP [options] +.fi + +.SH DESCRIPTION +PC parses and (starts to) compile a subset of pascal into X86-64 +assembly. PC accepts a source file via stdin and will output to +stdout (as long as the binary was compiled with the GENERATE_CODE +macro). Errors are reported on stderr; If the binary was compiled +with the macro DEBUG then parse trees and scopes are printed to stderr +as well. + +.SH OPTIONS +.PP +PC currently accepts no options. + +.SH AUTHOR +Tucker Evans diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..b3f7f51 --- /dev/null +++ b/readme.txt @@ -0,0 +1,41 @@ +PC Readme +========= +Tucker Evans +October 16, 2019 + +PC parses and (starts to) compile a subset of pascal into X86-64 +assembly. + +Installation/Running +-------------------- +PC can be installed into the local directory using `make`, this creates the +binary 'pc'. PC accepts a source file via stdin and will output assembly to +stdout (given it is compiled with the macro `GENERATE_CODE`). Errors are reported +on stderr; if the binary is compiled with the `DEBUG` macro then tokens, parse +trees, and scope information will also be printed to stderr. + +Status +------ +PC has a working frontend and an incomplete backend . PC currently can tokenize, +parse, and run semantic checks on source files. The code generation is currently +limited to: +- Output (write() calls) +- Expressions + - Function calls + - Addition/Subtraction + - Multiplication/Division + - Negation + - Variable access (Not Arrays) +- Statements + - Assignment + - Procedure calls + +Therefore the current ToDo list for code generation is: +- Input via read() (emulating scanf c call) +- If statements +- While loops (statement) +- For loops (statement) +- Array Access + +Other ToDo's +- Provide src/output files via flags. |