summaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* Draw computed types stored in ASTTing-Wei Lan2015-12-091-0/+36
* Check and write computed types for expressions and arraysTing-Wei Lan2015-12-092-7/+181
* process_{relop_expr, var_ref} -> check_{relop_expr, var_ref}kugwa2015-12-092-6/+44
* Handle array dimension error of function parameterskugwa2015-12-092-9/+17
* Change ID to var_ref for rule assign_exprkugwa2015-12-091-4/+2
* process_{typedef,variable,function} -> decl_{typedef,variable,function}Ting-Wei Lan2015-12-091-9/+9
* retrive -> retrieveTing-Wei Lan2015-12-093-7/+7
* Fix crash when constant expressions include string literalsTing-Wei Lan2015-12-091-1/+8
* Show (void) for functions without argumentsTing-Wei Lan2015-12-091-0/+2
* Can declare local variable and write empty statementskugwa2015-12-081-3/+24
* Move code for block node into process_block()kugwa2015-12-081-34/+62
* Can declare functions with empty blockskugwa2015-12-081-18/+73
* Allow using 'type name(void)' to define functions with no argumentTing-Wei Lan2015-12-071-0/+24
* Implement checks for global variable initalizersTing-Wei Lan2015-12-071-46/+185
* Reject void variables and void arrays.Ting-Wei Lan2015-12-071-0/+11
* Write results to AST nodes when evaluating constant expressionsTing-Wei Lan2015-12-072-88/+93
* Allow using typedef with array typesTing-Wei Lan2015-12-071-4/+15
* Fix unhandled enumeration value errorTing-Wei Lan2015-12-071-0/+1
* Use stdin if the source file name is a single dashTing-Wei Lan2015-12-071-1/+2
* Allow dumping symbol table via an environment variableTing-Wei Lan2015-12-071-1/+14
* Fix problems caused by short-circuit evaluationTing-Wei Lan2015-12-071-4/+4
* Handle constant expressions with integer division by zeroTing-Wei Lan2015-12-072-5/+11
* Re-add line number fields in AST nodesTing-Wei Lan2015-12-074-152/+225
* Implement semantic checks for type and variable declarationsTing-Wei Lan2015-12-065-2/+434
* Add a flag to mark whether the type is a functionTing-Wei Lan2015-12-061-3/+16
* Simple coding style fixTing-Wei Lan2015-12-061-1/+1
* Fix typo in ast.hTing-Wei Lan2015-12-061-2/+2
* We are going to do semantic analysisTing-Wei Lan2015-12-066-0/+44
* Fix indent and broken include guard in state.[ch]Ting-Wei Lan2015-12-062-11/+13
* Disable AST dumping by defaultTing-Wei Lan2015-12-061-1/+3
* Use multiple small hash tables to implement symbol tablesTing-Wei Lan2015-12-063-80/+116
* Refuse to compile if C11 isn't supportedTing-Wei Lan2015-12-032-3/+178
* Drop all non-namespaced symbolsTing-Wei Lan2015-12-0310-505/+525
* Drop line_number and prog global variablesTing-Wei Lan2015-12-027-34/+80
* Make the scanner and the parser reentrant and reduce non-namespaced symbolsTing-Wei Lan2015-12-013-19/+52
* Sort the list of tokens and non-terminalsTing-Wei Lan2015-11-301-15/+18
* Use strerror_r to make error messages more usefulTing-Wei Lan2015-11-305-19/+91
* The style of grammer rules is more consistent nowTing-Wei Lan2015-11-301-129/+130
* Drop tab usage in source filesTing-Wei Lan2015-11-302-63/+63
* Drop unused codeTing-Wei Lan2015-11-301-7/+1
* All source files should include vim modelinesTing-Wei Lan2015-11-304-0/+7
* Include our headers before including system headersTing-Wei Lan2015-11-307-9/+16
* Don't include lexer.c and move yyerror to the end of fileTing-Wei Lan2015-11-303-15/+17
* Add the header generated by yacc to BUILT_SOURCESHW3Ting-Wei Lan2015-11-131-1/+1
* Enable POSIX extensionsTing-Wei Lan2015-11-136-0/+23
* Fix the build with --enable-compile-warnings=errorTing-Wei Lan2015-11-133-31/+41
* Implement IF and IF...ELSE statementskugwa2015-11-131-5/+7
* Complete rules and actions for remaining operators and arraysTing-Wei Lan2015-11-131-26/+84
* Complete most of the semantic actions before relop_exprkugwa2015-11-131-47/+81
* Fix some actions to meet TA's speckugwa2015-11-131-10/+5
* Add declaration of printGV() in main.ckugwa2015-11-121-0/+2
* It finally works for some simple programskugwa2015-11-121-21/+43
* main() prints the parse treekugwa2015-11-123-0/+204
* Token ID fills yylvalkugwa2015-11-121-0/+5
* Constant tokens fill yylval and return CONSTkugwa2015-11-121-5/+24
* Merge TA's codes to ourskugwa2015-11-119-144/+937
* Don't define [+-]? for CONST_INT and CONST_FLOATkugwa2015-11-111-3/+2
* Make sure we don't accidently change the number of reserved wordsTing-Wei Lan2015-11-111-0/+5
* All actions in lexer.l return the currect tokenkugwa2015-11-111-27/+47
* Change the action of the comment tokenkugwa2015-11-091-1/+6
* Move all source files to the new src directoryTing-Wei Lan2015-11-096-12/+14
* CONST_FLOAT now matchs some fucking cases like '1.' or '.1'HW2kugwa2015-10-231-1/+1
* CONST_FLOAT can now match 1e9kugwa2015-10-231-1/+1
* Exit after an unknown token is foundTing-Wei Lan2015-10-231-0/+2
* line_number starts from 1 instead of 0kugwa2015-10-231-1/+1
* More complex format of int and float can be matchkugwa2015-10-231-3/+3
* Don't include file generated by flex in submitted homeworkTing-Wei Lan2015-10-211-0/+3
* Follow the format required by TATing-Wei Lan2015-10-212-10/+14
* Use AX_COMPILER_FLAGSTing-Wei Lan2015-10-2113-3/+899
* Don't export non-namespaced symbolsTing-Wei Lan2015-10-214-34/+34
* symbol-table.h needs a header guardTing-Wei Lan2015-10-211-0/+4
* Don't export linenumber global variableTing-Wei Lan2015-10-213-8/+7
* Print sorted list of identifiers in mainTing-Wei Lan2015-10-211-3/+20
* Move main function to a separate fileTing-Wei Lan2015-10-213-12/+21
* Break a long lineTing-Wei Lan2015-10-211-1/+2
* Show undefined characters in error messagesTing-Wei Lan2015-10-211-1/+4
* Change the usage of fillTab()kugwa2015-10-212-3/+16
* Add fillTab() for hw2kugwa2015-10-212-0/+15
* Replace tabs with spaces in symbol-table.ckugwa2015-10-211-8/+8
* Add modelines for vimTing-Wei Lan2015-10-213-0/+5
* Replace all tabs with spaces in symbol-table.hTing-Wei Lan2015-10-211-5/+5
* Show line numbers in error messagesTing-Wei Lan2015-10-211-1/+1
* Ignore ylwrap generated by automakeTing-Wei Lan2015-10-211-0/+1
* Fix coding style and remove all tabsTing-Wei Lan2015-10-212-74/+69
* Deal with identifiers and reserved words differentlykugwa2015-10-211-15/+19
* Complete lexer.lkugwa2015-10-193-74/+135
* Add a simple autotools build systemTing-Wei Lan2015-10-193-0/+57
* Rename header.h to symbol-table.hTing-Wei Lan2015-10-194-3/+3
* Rewrite Makefile to use default rules specified by POSIXTing-Wei Lan2015-10-192-21/+10
* Add a .gitignore file for autotoolsTing-Wei Lan2015-10-191-0/+64
* Import files provided by TATATing-Wei Lan2015-10-194-0/+211