Siraaj Khandkar [Fri, 28 Sep 2018 14:41:36 +0000 (10:41 -0400)]
Begin translation module
Siraaj Khandkar [Fri, 28 Sep 2018 14:01:32 +0000 (10:01 -0400)]
Define the tree IR
Siraaj Khandkar [Fri, 28 Sep 2018 14:00:28 +0000 (10:00 -0400)]
Define MIPS word size
Siraaj Khandkar [Wed, 26 Sep 2018 00:51:33 +0000 (20:51 -0400)]
Rough frame allocations
Siraaj Khandkar [Thu, 20 Sep 2018 20:38:54 +0000 (16:38 -0400)]
Sketch-out a dummy escape-finding module
which nothing but traversal of AST at the moment
Siraaj Khandkar [Thu, 20 Sep 2018 20:35:00 +0000 (16:35 -0400)]
Add option iter
Siraaj Khandkar [Wed, 19 Sep 2018 21:31:58 +0000 (17:31 -0400)]
Fail successful execution when expected error is defined
Siraaj Khandkar [Wed, 19 Sep 2018 15:06:37 +0000 (11:06 -0400)]
Hide counter inside closure
Siraaj Khandkar [Tue, 18 Sep 2018 21:52:09 +0000 (17:52 -0400)]
Add the final rules to README
Siraaj Khandkar [Tue, 18 Sep 2018 21:45:06 +0000 (17:45 -0400)]
Add some of implementation notes to README
Siraaj Khandkar [Tue, 18 Sep 2018 20:57:38 +0000 (16:57 -0400)]
Switch Type.unique implementation from ref to Symbol
The intent seem more apparent this way, plus we gain the ability to save the
human-readable type name (for error messages).
Siraaj Khandkar [Tue, 18 Sep 2018 20:55:25 +0000 (16:55 -0400)]
Fix Symbol.new_of_string - it should not save
also rename it to unique_of_string to clarify the main idea
Siraaj Khandkar [Tue, 18 Sep 2018 20:31:45 +0000 (16:31 -0400)]
Check scope of break statements
Siraaj Khandkar [Tue, 18 Sep 2018 18:43:58 +0000 (14:43 -0400)]
Detect cycles in type declarations
Siraaj Khandkar [Tue, 18 Sep 2018 17:11:22 +0000 (13:11 -0400)]
Expose option module to the rest of the program
Siraaj Khandkar [Mon, 17 Sep 2018 14:07:26 +0000 (10:07 -0400)]
Complete semantic analysis
Siraaj Khandkar [Mon, 17 Sep 2018 13:53:26 +0000 (09:53 -0400)]
Implement (mutually) recursive function definitions
Siraaj Khandkar [Mon, 17 Sep 2018 12:02:42 +0000 (08:02 -0400)]
Remove some unused bindings
Siraaj Khandkar [Mon, 17 Sep 2018 11:59:10 +0000 (07:59 -0400)]
Fix - check number of arguments in function calls
Siraaj Khandkar [Mon, 17 Sep 2018 11:43:19 +0000 (07:43 -0400)]
Expect more book errors
Siraaj Khandkar [Mon, 17 Sep 2018 11:28:27 +0000 (07:28 -0400)]
Filter-out non-.tig files from list of test case files
Siraaj Khandkar [Mon, 17 Sep 2018 11:20:57 +0000 (07:20 -0400)]
Filter-out hidden filenames from list of test files
These pop-up as tests every time I open one in Vim and a .filename.swp would be
created
Siraaj Khandkar [Mon, 17 Sep 2018 11:02:39 +0000 (07:02 -0400)]
Fix fragile pattern matching
Siraaj Khandkar [Mon, 17 Sep 2018 11:00:13 +0000 (07:00 -0400)]
Add more expected errors in book tests
Siraaj Khandkar [Sun, 16 Sep 2018 23:49:07 +0000 (19:49 -0400)]
Expect some of the type errors in book tests
Siraaj Khandkar [Sun, 16 Sep 2018 23:36:51 +0000 (19:36 -0400)]
Fix grammar - allow empty set of record fields
Siraaj Khandkar [Sun, 16 Sep 2018 23:27:56 +0000 (19:27 -0400)]
Expect type error in test43.tig
Siraaj Khandkar [Sun, 16 Sep 2018 23:27:18 +0000 (19:27 -0400)]
WIP type-checking -- check recursive type defs
Siraaj Khandkar [Sun, 16 Sep 2018 18:10:01 +0000 (14:10 -0400)]
Add micro test for recursive type def
Siraaj Khandkar [Sun, 16 Sep 2018 17:23:19 +0000 (13:23 -0400)]
Add CLI options to execute different test suites
Siraaj Khandkar [Sun, 16 Sep 2018 16:52:02 +0000 (12:52 -0400)]
Clean-up missing labels and unused entities
Siraaj Khandkar [Sun, 16 Sep 2018 16:41:30 +0000 (12:41 -0400)]
Use the same status symbol for total as for each
Siraaj Khandkar [Sun, 16 Sep 2018 16:25:28 +0000 (12:25 -0400)]
Don't execute semant test if parsing fails
this is a hack - need to replace with a general test-dependency framework
Siraaj Khandkar [Sun, 16 Sep 2018 16:17:35 +0000 (12:17 -0400)]
Expect syntax error in test49.tig
Siraaj Khandkar [Sun, 16 Sep 2018 15:12:09 +0000 (11:12 -0400)]
Implement tests grid-view and backtraces
but messily - needs refactoring
Siraaj Khandkar [Sat, 15 Sep 2018 20:15:49 +0000 (16:15 -0400)]
Disambiguate variant label
Siraaj Khandkar [Sat, 15 Sep 2018 18:13:35 +0000 (14:13 -0400)]
Don't use long code as test name
Siraaj Khandkar [Sat, 15 Sep 2018 18:04:06 +0000 (14:04 -0400)]
Expand status notes
Siraaj Khandkar [Sat, 15 Sep 2018 17:41:55 +0000 (13:41 -0400)]
Disable color for skip status indicator
Siraaj Khandkar [Sat, 15 Sep 2018 17:40:17 +0000 (13:40 -0400)]
Disable info for non-fail status
Siraaj Khandkar [Sat, 15 Sep 2018 17:33:01 +0000 (13:33 -0400)]
Condense status to a more-useful TODO form
Siraaj Khandkar [Sat, 15 Sep 2018 17:20:48 +0000 (13:20 -0400)]
Test every book test case
Siraaj Khandkar [Fri, 14 Sep 2018 19:23:34 +0000 (15:23 -0400)]
Escape newline in strings
Siraaj Khandkar [Fri, 14 Sep 2018 17:55:17 +0000 (13:55 -0400)]
Add a couple of type (in)compatibility test cases
Siraaj Khandkar [Fri, 14 Sep 2018 16:02:48 +0000 (12:02 -0400)]
Fix use type of last expression in a sequence
Siraaj Khandkar [Fri, 14 Sep 2018 15:45:13 +0000 (11:45 -0400)]
Fix incorrect environment entry
should be a value, not type
Siraaj Khandkar [Fri, 14 Sep 2018 15:39:57 +0000 (11:39 -0400)]
Tighten-up test cases: specify where errors are expected
Siraaj Khandkar [Fri, 14 Sep 2018 15:12:52 +0000 (11:12 -0400)]
Remove unused code
Siraaj Khandkar [Fri, 14 Sep 2018 15:01:32 +0000 (11:01 -0400)]
WIP type-checking -- check function declarations
Siraaj Khandkar [Fri, 14 Sep 2018 13:38:02 +0000 (09:38 -0400)]
Add TODO for mutual recursion
Siraaj Khandkar [Fri, 14 Sep 2018 13:36:42 +0000 (09:36 -0400)]
WIP type-checking -- check type declarations
Siraaj Khandkar [Fri, 14 Sep 2018 13:22:31 +0000 (09:22 -0400)]
Count test cases
Siraaj Khandkar [Fri, 14 Sep 2018 12:31:18 +0000 (08:31 -0400)]
WIP type-checking -- check variable declarations
Siraaj Khandkar [Thu, 13 Sep 2018 23:54:20 +0000 (19:54 -0400)]
WIP type-checking -- check array expressions
Siraaj Khandkar [Thu, 13 Sep 2018 23:40:45 +0000 (19:40 -0400)]
WIP type-checking -- check record expressions
Siraaj Khandkar [Thu, 13 Sep 2018 23:15:58 +0000 (19:15 -0400)]
WIP type-checking -- check function call expression
Siraaj Khandkar [Thu, 13 Sep 2018 22:57:50 +0000 (18:57 -0400)]
WIP type-checking -- check array subscript access
Siraaj Khandkar [Thu, 13 Sep 2018 22:40:01 +0000 (18:40 -0400)]
WIP type-checking
Siraaj Khandkar [Thu, 13 Sep 2018 20:58:23 +0000 (16:58 -0400)]
Abandon -classic-display
Siraaj Khandkar [Thu, 13 Sep 2018 17:19:00 +0000 (13:19 -0400)]
Sketch-out Semant module
Siraaj Khandkar [Thu, 13 Sep 2018 17:18:23 +0000 (13:18 -0400)]
Define the environments (for types and values)
Siraaj Khandkar [Thu, 13 Sep 2018 15:14:13 +0000 (11:14 -0400)]
Improve final pass/fail indicator
Siraaj Khandkar [Thu, 13 Sep 2018 14:57:37 +0000 (10:57 -0400)]
Add module abbreviations to error module interface
Siraaj Khandkar [Thu, 13 Sep 2018 14:40:30 +0000 (10:40 -0400)]
Test for semantic errors
(just 1 of, for now)
Siraaj Khandkar [Thu, 13 Sep 2018 14:15:35 +0000 (10:15 -0400)]
Add stub for Translate module
Siraaj Khandkar [Thu, 13 Sep 2018 14:14:26 +0000 (10:14 -0400)]
Resurrect 8-queens test
Siraaj Khandkar [Thu, 13 Sep 2018 14:04:59 +0000 (10:04 -0400)]
Replace test status lexicon
of OK/ERROR/WARN with Pass/Fail/Skip
Siraaj Khandkar [Thu, 13 Sep 2018 14:00:49 +0000 (10:00 -0400)]
Use helper functions for test status indicators
Siraaj Khandkar [Thu, 13 Sep 2018 13:25:48 +0000 (09:25 -0400)]
Add stub for Semant module
Siraaj Khandkar [Thu, 13 Sep 2018 12:59:38 +0000 (08:59 -0400)]
Add semantic analysis stage to tests
Siraaj Khandkar [Thu, 13 Sep 2018 12:58:19 +0000 (08:58 -0400)]
Indicate "OK" for expected errors
Siraaj Khandkar [Wed, 12 Sep 2018 22:33:54 +0000 (18:33 -0400)]
Augment testing framework to support examining errors
so we can check for semantic errors later
Siraaj Khandkar [Wed, 12 Sep 2018 22:30:12 +0000 (18:30 -0400)]
Define (some) semantic errors
Siraaj Khandkar [Tue, 11 Sep 2018 16:34:07 +0000 (12:34 -0400)]
Add map helper to build from list of pairs
Siraaj Khandkar [Tue, 11 Sep 2018 16:32:26 +0000 (12:32 -0400)]
Remove label from error raising helper
Siraaj Khandkar [Tue, 11 Sep 2018 16:29:22 +0000 (12:29 -0400)]
Explicitly ignore unused fields
Siraaj Khandkar [Wed, 6 Jun 2018 01:15:48 +0000 (21:15 -0400)]
Update alignment
Siraaj Khandkar [Wed, 6 Jun 2018 01:14:22 +0000 (21:14 -0400)]
Centralize error message construction
Siraaj Khandkar [Tue, 5 Jun 2018 16:55:03 +0000 (12:55 -0400)]
Define the canonical map structure for Tiger
with a Red Black tree implementation, adapted from Okasaki.
Siraaj Khandkar [Tue, 5 Jun 2018 16:46:18 +0000 (12:46 -0400)]
Refactor test framework
Siraaj Khandkar [Tue, 5 Jun 2018 16:25:29 +0000 (12:25 -0400)]
Begin Implementation Notes section
Siraaj Khandkar [Tue, 5 Jun 2018 16:24:24 +0000 (12:24 -0400)]
Refer to test errors as failures
Siraaj Khandkar [Tue, 5 Jun 2018 16:12:46 +0000 (12:12 -0400)]
Report error count
Siraaj Khandkar [Tue, 5 Jun 2018 16:11:53 +0000 (12:11 -0400)]
Break some long lines
Siraaj Khandkar [Tue, 5 Jun 2018 15:55:28 +0000 (11:55 -0400)]
Re-use code for name in micro test cases
Siraaj Khandkar [Sun, 3 Jun 2018 18:02:57 +0000 (14:02 -0400)]
Refactor testing framework
Siraaj Khandkar [Fri, 1 Jun 2018 17:09:37 +0000 (13:09 -0400)]
Indent stringinfied AST
first stab - some rough edges remain
Siraaj Khandkar [Fri, 1 Jun 2018 00:59:05 +0000 (20:59 -0400)]
Implement a basic AST printer
Siraaj Khandkar [Thu, 31 May 2018 23:07:13 +0000 (19:07 -0400)]
Rename "tiger" dir to "compiler"
Siraaj Khandkar [Thu, 31 May 2018 21:49:28 +0000 (17:49 -0400)]
Fix shift/reduce conflicts introduced by grouping consecutive typ|fun decs
Siraaj Khandkar [Thu, 31 May 2018 19:16:35 +0000 (15:16 -0400)]
Complete 1.04.p: add semantic actions to parser
FIXME: 2 more shift/reduce conflicts were introduced
with the rules for consecutive function and type declarations
Siraaj Khandkar [Thu, 31 May 2018 17:09:09 +0000 (13:09 -0400)]
Output ocamlyacc state table
for debugging conflicts
Siraaj Khandkar [Thu, 31 May 2018 17:08:36 +0000 (13:08 -0400)]
Reorg Makefile
Siraaj Khandkar [Wed, 30 May 2018 02:40:35 +0000 (22:40 -0400)]
Update project status
Siraaj Khandkar [Wed, 30 May 2018 02:35:46 +0000 (22:35 -0400)]
Fix the remaining 12 shift/reduce conflicts
which were due to associativity and precedence conflicts between operators,
previously defined as a single production
Siraaj Khandkar [Tue, 29 May 2018 16:37:56 +0000 (12:37 -0400)]
Show commands executed by ocamlbuild
Siraaj Khandkar [Tue, 29 May 2018 15:00:15 +0000 (11:00 -0400)]
Assign precedence and associativity to THEN
reduces shift/reduce conflicts from 25 to 12
Siraaj Khandkar [Tue, 29 May 2018 14:59:09 +0000 (10:59 -0400)]
Assign precedence and associativity to ELSE
reduces shift/reduce conflicts from 37 to 25
Siraaj Khandkar [Tue, 29 May 2018 14:57:47 +0000 (10:57 -0400)]
Assign precedence to ASSIGN
reduces shift/reduce conflicts from 49 to 37
Siraaj Khandkar [Tue, 29 May 2018 14:56:17 +0000 (10:56 -0400)]
Assign precedence and associativity to OF and DO
reduces shift/reduce conflicts from 85 to 49
This page took 0.072865 seconds and 4 git commands to generate.