tiger.ml.git
6 years agoHide counter inside closure
Siraaj Khandkar [Wed, 19 Sep 2018 15:06:37 +0000 (11:06 -0400)] 
Hide counter inside closure

6 years agoAdd the final rules to README
Siraaj Khandkar [Tue, 18 Sep 2018 21:52:09 +0000 (17:52 -0400)] 
Add the final rules to README

6 years agoAdd some of implementation notes to README
Siraaj Khandkar [Tue, 18 Sep 2018 21:45:06 +0000 (17:45 -0400)] 
Add some of implementation notes to README

6 years agoSwitch Type.unique implementation from ref to Symbol
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).

6 years agoFix Symbol.new_of_string - it should not save
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

6 years agoCheck scope of break statements
Siraaj Khandkar [Tue, 18 Sep 2018 20:31:45 +0000 (16:31 -0400)] 
Check scope of break statements

6 years agoDetect cycles in type declarations
Siraaj Khandkar [Tue, 18 Sep 2018 18:43:58 +0000 (14:43 -0400)] 
Detect cycles in type declarations

6 years agoExpose option module to the rest of the program
Siraaj Khandkar [Tue, 18 Sep 2018 17:11:22 +0000 (13:11 -0400)] 
Expose option module to the rest of the program

6 years agoComplete semantic analysis
Siraaj Khandkar [Mon, 17 Sep 2018 14:07:26 +0000 (10:07 -0400)] 
Complete semantic analysis

6 years agoImplement (mutually) recursive function definitions
Siraaj Khandkar [Mon, 17 Sep 2018 13:53:26 +0000 (09:53 -0400)] 
Implement (mutually) recursive function definitions

6 years agoRemove some unused bindings
Siraaj Khandkar [Mon, 17 Sep 2018 12:02:42 +0000 (08:02 -0400)] 
Remove some unused bindings

6 years agoFix - check number of arguments in function calls
Siraaj Khandkar [Mon, 17 Sep 2018 11:59:10 +0000 (07:59 -0400)] 
Fix - check number of arguments in function calls

6 years agoExpect more book errors
Siraaj Khandkar [Mon, 17 Sep 2018 11:43:19 +0000 (07:43 -0400)] 
Expect more book errors

6 years agoFilter-out non-.tig files from list of test case files
Siraaj Khandkar [Mon, 17 Sep 2018 11:28:27 +0000 (07:28 -0400)] 
Filter-out non-.tig files from list of test case files

6 years agoFilter-out hidden filenames from list of test 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

6 years agoFix fragile pattern matching
Siraaj Khandkar [Mon, 17 Sep 2018 11:02:39 +0000 (07:02 -0400)] 
Fix fragile pattern matching

6 years agoAdd more expected errors in book tests
Siraaj Khandkar [Mon, 17 Sep 2018 11:00:13 +0000 (07:00 -0400)] 
Add more expected errors in book tests

6 years agoExpect some of the type 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

6 years agoFix grammar - allow empty set of record fields
Siraaj Khandkar [Sun, 16 Sep 2018 23:36:51 +0000 (19:36 -0400)] 
Fix grammar - allow empty set of record fields

6 years agoExpect type error in test43.tig
Siraaj Khandkar [Sun, 16 Sep 2018 23:27:56 +0000 (19:27 -0400)] 
Expect type error in test43.tig

6 years agoWIP type-checking -- check recursive type defs
Siraaj Khandkar [Sun, 16 Sep 2018 23:27:18 +0000 (19:27 -0400)] 
WIP type-checking -- check recursive type defs

6 years agoAdd micro test for recursive type def
Siraaj Khandkar [Sun, 16 Sep 2018 18:10:01 +0000 (14:10 -0400)] 
Add micro test for recursive type def

6 years agoAdd CLI options to execute different test suites
Siraaj Khandkar [Sun, 16 Sep 2018 17:23:19 +0000 (13:23 -0400)] 
Add CLI options to execute different test suites

6 years agoClean-up missing labels and unused entities
Siraaj Khandkar [Sun, 16 Sep 2018 16:52:02 +0000 (12:52 -0400)] 
Clean-up missing labels and unused entities

6 years agoUse the same status symbol for total as for each
Siraaj Khandkar [Sun, 16 Sep 2018 16:41:30 +0000 (12:41 -0400)] 
Use the same status symbol for total as for each

6 years agoDon't execute semant test if parsing fails
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

6 years agoExpect syntax error in test49.tig
Siraaj Khandkar [Sun, 16 Sep 2018 16:17:35 +0000 (12:17 -0400)] 
Expect syntax error in test49.tig

6 years agoImplement tests grid-view and backtraces
Siraaj Khandkar [Sun, 16 Sep 2018 15:12:09 +0000 (11:12 -0400)] 
Implement tests grid-view and backtraces

but messily - needs refactoring

6 years agoDisambiguate variant label
Siraaj Khandkar [Sat, 15 Sep 2018 20:15:49 +0000 (16:15 -0400)] 
Disambiguate variant label

6 years agoDon't use long code as test name
Siraaj Khandkar [Sat, 15 Sep 2018 18:13:35 +0000 (14:13 -0400)] 
Don't use long code as test name

6 years agoExpand status notes
Siraaj Khandkar [Sat, 15 Sep 2018 18:04:06 +0000 (14:04 -0400)] 
Expand status notes

6 years agoDisable color for skip status indicator
Siraaj Khandkar [Sat, 15 Sep 2018 17:41:55 +0000 (13:41 -0400)] 
Disable color for skip status indicator

6 years agoDisable info for non-fail status
Siraaj Khandkar [Sat, 15 Sep 2018 17:40:17 +0000 (13:40 -0400)] 
Disable info for non-fail status

6 years agoCondense status to a more-useful TODO form
Siraaj Khandkar [Sat, 15 Sep 2018 17:33:01 +0000 (13:33 -0400)] 
Condense status to a more-useful TODO form

6 years agoTest every book test case
Siraaj Khandkar [Sat, 15 Sep 2018 17:20:48 +0000 (13:20 -0400)] 
Test every book test case

6 years agoEscape newline in strings
Siraaj Khandkar [Fri, 14 Sep 2018 19:23:34 +0000 (15:23 -0400)] 
Escape newline in strings

6 years agoAdd a couple of type (in)compatibility test cases
Siraaj Khandkar [Fri, 14 Sep 2018 17:55:17 +0000 (13:55 -0400)] 
Add a couple of type (in)compatibility test cases

6 years agoFix use type of last expression in a sequence
Siraaj Khandkar [Fri, 14 Sep 2018 16:02:48 +0000 (12:02 -0400)] 
Fix use type of last expression in a sequence

6 years agoFix incorrect environment entry
Siraaj Khandkar [Fri, 14 Sep 2018 15:45:13 +0000 (11:45 -0400)] 
Fix incorrect environment entry

should be a value, not type

6 years agoTighten-up test cases: specify where errors are expected
Siraaj Khandkar [Fri, 14 Sep 2018 15:39:57 +0000 (11:39 -0400)] 
Tighten-up test cases: specify where errors are expected

6 years agoRemove unused code
Siraaj Khandkar [Fri, 14 Sep 2018 15:12:52 +0000 (11:12 -0400)] 
Remove unused code

6 years agoWIP type-checking -- check function declarations
Siraaj Khandkar [Fri, 14 Sep 2018 15:01:32 +0000 (11:01 -0400)] 
WIP type-checking -- check function declarations

6 years agoAdd TODO for mutual recursion
Siraaj Khandkar [Fri, 14 Sep 2018 13:38:02 +0000 (09:38 -0400)] 
Add TODO for mutual recursion

6 years agoWIP type-checking -- check type declarations
Siraaj Khandkar [Fri, 14 Sep 2018 13:36:42 +0000 (09:36 -0400)] 
WIP type-checking -- check type declarations

6 years agoCount test cases
Siraaj Khandkar [Fri, 14 Sep 2018 13:22:31 +0000 (09:22 -0400)] 
Count test cases

6 years agoWIP type-checking -- check variable declarations
Siraaj Khandkar [Fri, 14 Sep 2018 12:31:18 +0000 (08:31 -0400)] 
WIP type-checking -- check variable declarations

6 years agoWIP type-checking -- check array expressions
Siraaj Khandkar [Thu, 13 Sep 2018 23:54:20 +0000 (19:54 -0400)] 
WIP type-checking -- check array expressions

6 years agoWIP type-checking -- check record expressions
Siraaj Khandkar [Thu, 13 Sep 2018 23:40:45 +0000 (19:40 -0400)] 
WIP type-checking -- check record expressions

6 years agoWIP type-checking -- check function call expression
Siraaj Khandkar [Thu, 13 Sep 2018 23:15:58 +0000 (19:15 -0400)] 
WIP type-checking -- check function call expression

6 years agoWIP type-checking -- check array subscript access
Siraaj Khandkar [Thu, 13 Sep 2018 22:57:50 +0000 (18:57 -0400)] 
WIP type-checking -- check array subscript access

6 years agoWIP type-checking
Siraaj Khandkar [Thu, 13 Sep 2018 22:40:01 +0000 (18:40 -0400)] 
WIP type-checking

6 years agoAbandon -classic-display
Siraaj Khandkar [Thu, 13 Sep 2018 20:58:23 +0000 (16:58 -0400)] 
Abandon -classic-display

6 years agoSketch-out Semant module
Siraaj Khandkar [Thu, 13 Sep 2018 17:19:00 +0000 (13:19 -0400)] 
Sketch-out Semant module

6 years agoDefine the environments (for types and values)
Siraaj Khandkar [Thu, 13 Sep 2018 17:18:23 +0000 (13:18 -0400)] 
Define the environments (for types and values)

6 years agoImprove final pass/fail indicator
Siraaj Khandkar [Thu, 13 Sep 2018 15:14:13 +0000 (11:14 -0400)] 
Improve final pass/fail indicator

6 years agoAdd module abbreviations to error module interface
Siraaj Khandkar [Thu, 13 Sep 2018 14:57:37 +0000 (10:57 -0400)] 
Add module abbreviations to error module interface

6 years agoTest for semantic errors
Siraaj Khandkar [Thu, 13 Sep 2018 14:40:30 +0000 (10:40 -0400)] 
Test for semantic errors

(just 1 of, for now)

6 years agoAdd stub for Translate module
Siraaj Khandkar [Thu, 13 Sep 2018 14:15:35 +0000 (10:15 -0400)] 
Add stub for Translate module

6 years agoResurrect 8-queens test
Siraaj Khandkar [Thu, 13 Sep 2018 14:14:26 +0000 (10:14 -0400)] 
Resurrect 8-queens test

6 years agoReplace test status lexicon
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

6 years agoUse helper functions for test status indicators
Siraaj Khandkar [Thu, 13 Sep 2018 14:00:49 +0000 (10:00 -0400)] 
Use helper functions for test status indicators

6 years agoAdd stub for Semant module
Siraaj Khandkar [Thu, 13 Sep 2018 13:25:48 +0000 (09:25 -0400)] 
Add stub for Semant module

6 years agoAdd semantic analysis stage to tests
Siraaj Khandkar [Thu, 13 Sep 2018 12:59:38 +0000 (08:59 -0400)] 
Add semantic analysis stage to tests

6 years agoIndicate "OK" for expected errors
Siraaj Khandkar [Thu, 13 Sep 2018 12:58:19 +0000 (08:58 -0400)] 
Indicate "OK" for expected errors

6 years agoAugment testing framework to support examining 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

6 years agoDefine (some) semantic errors
Siraaj Khandkar [Wed, 12 Sep 2018 22:30:12 +0000 (18:30 -0400)] 
Define (some) semantic errors

6 years agoAdd map helper to build from list of pairs
Siraaj Khandkar [Tue, 11 Sep 2018 16:34:07 +0000 (12:34 -0400)] 
Add map helper to build from list of pairs

6 years agoRemove label from error raising helper
Siraaj Khandkar [Tue, 11 Sep 2018 16:32:26 +0000 (12:32 -0400)] 
Remove label from error raising helper

6 years agoExplicitly ignore unused fields
Siraaj Khandkar [Tue, 11 Sep 2018 16:29:22 +0000 (12:29 -0400)] 
Explicitly ignore unused fields

6 years agoUpdate alignment
Siraaj Khandkar [Wed, 6 Jun 2018 01:15:48 +0000 (21:15 -0400)] 
Update alignment

6 years agoCentralize error message construction
Siraaj Khandkar [Wed, 6 Jun 2018 01:14:22 +0000 (21:14 -0400)] 
Centralize error message construction

6 years agoDefine the canonical map structure for Tiger
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.

6 years agoRefactor test framework
Siraaj Khandkar [Tue, 5 Jun 2018 16:46:18 +0000 (12:46 -0400)] 
Refactor test framework

6 years agoBegin Implementation Notes section
Siraaj Khandkar [Tue, 5 Jun 2018 16:25:29 +0000 (12:25 -0400)] 
Begin Implementation Notes section

6 years agoRefer to test errors as failures
Siraaj Khandkar [Tue, 5 Jun 2018 16:24:24 +0000 (12:24 -0400)] 
Refer to test errors as failures

6 years agoReport error count
Siraaj Khandkar [Tue, 5 Jun 2018 16:12:46 +0000 (12:12 -0400)] 
Report error count

6 years agoBreak some long lines
Siraaj Khandkar [Tue, 5 Jun 2018 16:11:53 +0000 (12:11 -0400)] 
Break some long lines

6 years agoRe-use code for name in micro test cases
Siraaj Khandkar [Tue, 5 Jun 2018 15:55:28 +0000 (11:55 -0400)] 
Re-use code for name in micro test cases

6 years agoRefactor testing framework
Siraaj Khandkar [Sun, 3 Jun 2018 18:02:57 +0000 (14:02 -0400)] 
Refactor testing framework

6 years agoIndent stringinfied AST
Siraaj Khandkar [Fri, 1 Jun 2018 17:09:37 +0000 (13:09 -0400)] 
Indent stringinfied AST

first stab - some rough edges remain

6 years agoImplement a basic AST printer
Siraaj Khandkar [Fri, 1 Jun 2018 00:59:05 +0000 (20:59 -0400)] 
Implement a basic AST printer

6 years agoRename "tiger" dir to "compiler"
Siraaj Khandkar [Thu, 31 May 2018 23:07:13 +0000 (19:07 -0400)] 
Rename "tiger" dir to "compiler"

6 years agoFix shift/reduce conflicts introduced by grouping consecutive typ|fun decs
Siraaj Khandkar [Thu, 31 May 2018 21:49:28 +0000 (17:49 -0400)] 
Fix shift/reduce conflicts introduced by grouping consecutive typ|fun decs

6 years agoComplete 1.04.p: add semantic actions to parser
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

6 years agoOutput ocamlyacc state table
Siraaj Khandkar [Thu, 31 May 2018 17:09:09 +0000 (13:09 -0400)] 
Output ocamlyacc state table

for debugging conflicts

6 years agoReorg Makefile
Siraaj Khandkar [Thu, 31 May 2018 17:08:36 +0000 (13:08 -0400)] 
Reorg Makefile

6 years agoUpdate project status
Siraaj Khandkar [Wed, 30 May 2018 02:40:35 +0000 (22:40 -0400)] 
Update project status

6 years agoFix the remaining 12 shift/reduce conflicts
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

6 years agoShow commands executed by ocamlbuild
Siraaj Khandkar [Tue, 29 May 2018 16:37:56 +0000 (12:37 -0400)] 
Show commands executed by ocamlbuild

6 years agoAssign precedence and associativity to THEN
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

6 years agoAssign precedence and associativity to ELSE
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

6 years agoAssign precedence to ASSIGN
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

6 years agoAssign precedence and associativity to OF and DO
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

6 years agoDisable queens test case from book (temporarily)
Siraaj Khandkar [Tue, 29 May 2018 14:48:31 +0000 (10:48 -0400)] 
Disable queens test case from book (temporarily)

because I'm too lazy to enter all the lexing tokens right now. Parsing works.

6 years agoAdd some micro test cases
Siraaj Khandkar [Tue, 29 May 2018 14:47:18 +0000 (10:47 -0400)] 
Add some micro test cases

6 years agoEnsure make fails after 1st recipe failure
Siraaj Khandkar [Tue, 29 May 2018 14:45:05 +0000 (10:45 -0400)] 
Ensure make fails after 1st recipe failure

6 years agoResolve conflict between 2 rules with subscript notation
Siraaj Khandkar [Tue, 29 May 2018 14:35:49 +0000 (10:35 -0400)] 
Resolve conflict between 2 rules with subscript notation

though I'm still not quite sure I understand why this is a problem...

6 years agoMove definition closer to usage location
Siraaj Khandkar [Mon, 28 May 2018 18:35:23 +0000 (14:35 -0400)] 
Move definition closer to usage location

6 years agoRemove stand-alone tyfield grammar rule
Siraaj Khandkar [Mon, 28 May 2018 18:32:01 +0000 (14:32 -0400)] 
Remove stand-alone tyfield grammar rule

6 years agoCombine declaration sub-rules
Siraaj Khandkar [Mon, 28 May 2018 18:26:33 +0000 (14:26 -0400)] 
Combine declaration sub-rules

This page took 0.074684 seconds and 4 git commands to generate.