Commit Graph

  • 5ec5e38289 Add ! operator Rui Ueyama 2019-08-13 19:31:04 +09:00
  • f78c409856 Add hexadecimal, octal and binary number literals Rui Ueyama 2019-08-13 18:39:56 +09:00
  • 05e907d2b8 Add +=, -=, *= and /= operators Rui Ueyama 2019-08-13 18:04:08 +09:00
  • 7d718c983f Add ++ and -- operators Rui Ueyama 2019-08-12 12:12:42 +09:00
  • 7c348c85b0 Add comma operator Rui Ueyama 2019-08-12 10:29:17 +09:00
  • cb487bf9e1 Add examples/nqueen.c Rui Ueyama 2019-08-11 22:55:07 +09:00
  • 264dc72ac7 Allow for-loops to define local variables Rui Ueyama 2019-08-11 22:53:26 +09:00
  • 095bbbec20 Support file-scope functions Rui Ueyama 2019-08-11 20:40:48 +09:00
  • b253dbf95c Add enum Rui Ueyama 2019-08-11 19:59:27 +09:00
  • 33f5efdf30 Add char literal Rui Ueyama 2019-08-11 16:27:43 +09:00
  • 64c5cf6ce0 Add type cast Rui Ueyama 2019-08-11 16:06:14 +09:00
  • 453d4564f0 Allow large literal integers Rui Ueyama 2019-08-11 15:24:40 +09:00
  • 476103724e Make sizeof to accept not only an expression but also a typename Rui Ueyama 2019-08-11 15:04:35 +09:00
  • 6c5fe4dd21 Handle complex type declarations correctly Rui Ueyama 2019-08-11 14:12:01 +09:00
  • b34bdb64a7 Add long long as an alias for long Rui Ueyama 2019-08-11 11:04:36 +09:00
  • 80dbe29163 Add _Bool type Rui Ueyama 2019-08-11 10:20:55 +09:00
  • 1508996b93 Add void type Rui Ueyama 2019-08-11 10:18:55 +09:00
  • 0ac8705115 Add a return type to a function Rui Ueyama 2019-08-11 09:53:31 +09:00
  • 1cbe40ad02 Add function declaration Rui Ueyama 2019-08-11 09:30:00 +09:00
  • d51097dc0f Support nested type declarators, e.g., "int (*x)[3]" Rui Ueyama 2019-08-10 23:05:37 +09:00
  • d25451dcaa Add short and long types Rui Ueyama 2019-08-09 10:29:42 +09:00
  • e513e5c8b9 Change the size of int from 8 to 4 Rui Ueyama 2019-08-09 10:12:23 +09:00
  • ddebc725d6 Add typedef Rui Ueyama 2019-08-09 08:46:41 +09:00
  • 683899958f Add "->" operator Rui Ueyama 2019-08-09 08:05:53 +09:00
  • 3bffeded7f Support struct tags Rui Ueyama 2019-08-09 07:30:00 +09:00
  • 8c8d518a81 Align local variables Rui Ueyama 2019-08-09 00:10:31 +09:00
  • b656615a72 Align struct members correctly Rui Ueyama 2019-08-09 00:04:18 +09:00
  • 6ba0fc5404 Add struct Rui Ueyama 2019-08-08 22:43:58 +09:00
  • 6f3c12586c Rewrite tests in shell script in C Rui Ueyama 2019-08-07 10:17:26 +09:00
  • 696af8d37b Handle block scope Rui Ueyama 2019-08-07 09:25:19 +09:00
  • de96f4b0ba Add line and block comments Rui Ueyama 2019-08-07 08:56:28 +09:00
  • 64f2d0b8a7 Read code from a file instead of argv[1] Rui Ueyama 2019-08-07 08:30:06 +09:00
  • ca52c2c7fd Add GNU expression statement Rui Ueyama 2019-08-07 08:05:18 +09:00
  • e648f9fba5 Add \a, \b, \t, \n \v, \f, \r, \e and \0 Rui Ueyama 2019-08-06 22:36:19 +09:00
  • 948dc8deed Add string literal Rui Ueyama 2019-08-06 20:49:57 +09:00
  • b6d512ee69 Add char type Rui Ueyama 2019-08-06 20:10:55 +09:00
  • 5e66e310ed Add global variables Rui Ueyama 2019-08-06 19:44:47 +09:00
  • ce8490c9cb Add sizeof Rui Ueyama 2019-08-06 18:44:53 +09:00
  • a0242d82cd Add [] operator Rui Ueyama 2019-08-06 18:14:53 +09:00
  • 924330b390 Add arrays of arrays Rui Ueyama 2019-08-05 23:56:37 +09:00
  • a8ae214d16 Add one dimensional arrays Rui Ueyama 2019-08-05 23:30:35 +09:00
  • 91465fe4ac Add keyword "int" and make variable definition mandatory Rui Ueyama 2019-08-05 22:44:44 +09:00
  • a3ae40fc7f Annotate AST nodes with types to make pointer arithmetic work Rui Ueyama 2019-08-05 22:30:34 +09:00
  • 4ff4c3142b Add unary & and * Rui Ueyama 2019-08-05 21:12:44 +09:00
  • 01893a7ff1 Add a representative node to each Node to improve error messages Rui Ueyama 2019-08-05 20:53:58 +09:00
  • c86f637f6d Support function definition up to 6 parameters Rui Ueyama 2019-08-05 08:35:49 +09:00
  • 4cd0e82bf1 Support parameter-less function definition Rui Ueyama 2019-08-04 19:47:41 +09:00
  • ee423036ed Make sure that stack frames are aligned to 16 bytes boundaries Rui Ueyama 2019-08-04 19:16:16 +09:00
  • ed3fc29894 Support function call with up to 6 arguments Rui Ueyama 2019-08-04 19:03:46 +09:00
  • 9dddc1d359 Support argument-less function calls Rui Ueyama 2019-08-04 18:25:20 +09:00
  • f0fe1c88ab Add LICENSE and README.md Rui Ueyama 2019-08-04 18:07:31 +09:00
  • be91a3587b Add { ... } Rui Ueyama 2019-08-04 17:55:33 +09:00
  • 8dab60e49c Add "for" statement Rui Ueyama 2019-08-04 17:35:53 +09:00
  • 913319ff27 Add "while" statement Rui Ueyama 2019-08-04 17:24:03 +09:00
  • b3d4b80260 Add "if" statement Rui Ueyama 2019-08-04 17:12:59 +09:00
  • 8fdc5aa417 Support multi-letter local variables Rui Ueyama 2019-08-04 15:21:44 +09:00
  • 4216d6c4cf Support single-letter local variables Rui Ueyama 2019-08-03 19:05:07 +09:00
  • 25f4523236 Add the notion of the expression statement Rui Ueyama 2019-08-03 19:00:00 +09:00
  • d0c3ed7dc9 Add "return" statement Rui Ueyama 2019-08-03 18:30:00 +09:00
  • 92bced2f8a Accept multiple statements separated by semicolons Rui Ueyama 2019-08-03 18:00:00 +09:00
  • 6eb2c2b4ee Split main.c into multiple small files Rui Ueyama 2019-08-03 17:17:13 +09:00
  • 99bd7171e1 Add ==, !=, <= and >= operators Rui Ueyama 2019-08-03 16:15:23 +09:00
  • 24a813c53d Handle reserved tokens as strings instead of characters Rui Ueyama 2019-08-03 16:10:23 +09:00
  • b00c7c562b Add unary plus and minus Rui Ueyama 2019-08-03 15:41:40 +09:00
  • ad0588a717 Add *, / and () Rui Ueyama 2019-08-03 15:36:43 +09:00
  • 4f057575cb Improve error message Rui Ueyama 2019-08-03 15:02:08 +09:00
  • dc03646614 Add a tokenizer to allow space characters between tokens Rui Ueyama 2019-08-03 12:36:06 +09:00
  • f0b01ae77a Add + and - operators Rui Ueyama 2019-08-03 12:20:08 +09:00
  • f722daaaae Compile an integer to an exectuable that exits with the given number Rui Ueyama 2019-08-03 11:29:50 +09:00
  • 82171f9ec3 Compile an integer to an exectuable that exits with the given number Rui Ueyama 2019-08-03 11:29:50 +09:00