aboutsummaryrefslogtreecommitdiff
path: root/readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'readme.txt')
-rw-r--r--readme.txt41
1 files changed, 41 insertions, 0 deletions
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.