Commit Graph

139 Commits

Author SHA1 Message Date
cyp0633 9c2dc3b341
Add comment 2023-05-19 21:09:35 +08:00
cyp0633 db25c8d799
Fix wrong load behavior in opExpr 2023-05-19 20:10:49 +08:00
cyp0633 e6b213b125
Fix: abs RM code generation 2023-05-06 22:03:02 +08:00
cyp0633 fcdc29992f
Fix: code generation not continued 2023-05-06 21:59:54 +08:00
Yupeng Chen c59a806437
Update symtab to make modification easy 2023-05-06 11:37:47 +08:00
Yupeng Chen abaf1a9cfe
Print syntax tree 2023-05-06 09:02:30 +08:00
Yupeng Chen b537b79524
Fix: output opened incorrectly 2023-05-06 09:02:19 +08:00
cyp0633 6ff16401ad
Fix: symtab not initialized 2023-05-05 21:25:36 +08:00
cyp0633 974fe10496
Fix: token string not cleared 2023-05-05 21:14:49 +08:00
cyp0633 eab6fd4f89
Main entry for compiler 2023-05-05 21:14:03 +08:00
cyp0633 c4268258f7
Code generation 2023-05-05 19:45:40 +08:00
cyp0633 b75657d7e2
Print asm code 2023-05-05 16:48:51 +08:00
cyp0633 fa1554d0af
Analyzer 2023-05-04 21:48:38 +08:00
cyp0633 0f88c7f329
Update parser comment 2023-05-04 21:48:26 +08:00
cyp0633 e76d5c6b2f
Symbol table 2023-05-04 21:32:04 +08:00
cyp0633 b21fb5b923
Fix parser global token variable 2023-05-04 20:10:27 +08:00
cyp0633 def6c6560d
Finish parser 2023-05-04 10:46:49 +08:00
cyp0633 af1ba20740
Partially complete parser 2023-05-03 23:54:42 +08:00
cyp0633 66ca048d8b
Add comment 2023-05-03 20:45:10 +08:00
cyp0633 d794dd682a
Rename package 2023-05-03 19:33:32 +08:00
cyp0633 6e1317167b
Handle scanner error properly 2023-04-25 16:10:52 +08:00
cyp0633 38822957ea
Test for GetToken 2023-04-24 20:27:25 +08:00
Yupeng Chen bf7b799fe6
Test for GetNextChar 2023-04-24 19:25:14 +08:00
Yupeng Chen be05c68cc7
GetToken function 2023-04-24 16:57:57 +08:00
cyp0633 6ab4791012
Tokens and reserved words 2023-04-24 11:27:47 +08:00
cyp0633 05c357b5ab
getNextChar and ungetNextChar of scanner 2023-04-24 11:06:31 +08:00
cyp0633 44cd0c607e
Merge branch 'lab2' 2023-04-14 21:25:55 +08:00
cyp0633 504332abe0
Extract left factor 2023-04-14 19:32:26 +08:00
cyp0633 600200720b
Extract left factor 2023-04-14 18:42:14 +08:00
cyp0633 d2fc6d8a9d
Get max production ID 2023-04-14 18:35:48 +08:00
cyp0633 85bcd2688b
Add test for fill LR0 parsing table 2023-04-13 22:32:35 +08:00
cyp0633 cbf6b55ff7
Fill LR(0) parsing table 2023-04-13 21:34:17 +08:00
cyp0633 ba4a8af415
Use map to store DFA edges 2023-04-13 20:41:46 +08:00
cyp0633 df77151d89
Test for CheckSLR1 2023-04-13 16:49:45 +08:00
cyp0633 033d3dfb7c
Check SLR1 2023-04-13 16:25:30 +08:00
cyp0633 7f93cabb55
Generate LR(0) DFA 2023-04-13 11:01:05 +08:00
Yupeng Chen eae28f8d98
Sync 2023-04-13 09:59:57 +08:00
Yupeng Chen 67a112bf90
LR(0) Goto function 2023-04-12 09:58:51 +08:00
Yupeng Chen 6c9a669438
core() and driver() function of ItemSet 2023-04-12 08:51:37 +08:00
cyp0633 d849406933
Make sure to pass ExhaustTransition test 2023-04-10 20:36:47 +08:00
Yupeng Chen b4aeb7acab
Test for Exhaust Transition 2023-04-10 19:44:42 +08:00
Yupeng Chen 848e6cdd6a
ExhaustTransition() 2023-04-10 16:49:30 +08:00
Yupeng Chen 10cbd88dd2
Use map to implement Action and Goto table 2023-04-10 10:47:42 +08:00
cyp0633 719eea77ce
Part of LR0 ExhaustTransition 2023-04-10 10:01:29 +08:00
Yupeng Chen d40f34a84c
Test for item set closure() 2023-04-03 16:59:31 +08:00
Yupeng Chen 8dbc37f355
Pretty print LR0Item and ItemSet 2023-04-03 16:30:06 +08:00
Yupeng Chen 2945f684b3
Use map to store item table 2023-04-03 11:32:33 +08:00
Yupeng Chen 0e2d6c8762
Closure of item set 2023-04-03 11:02:12 +08:00
Yupeng Chen bafc008854
Remove unused code 2023-04-03 11:01:06 +08:00
cyp0633 6a367b2a63
Use FOLLOW to check LL1 2023-04-01 23:06:24 +08:00