]>
www.git.momoyon.org Git - lang.git/log
momoyon [Thu, 17 Apr 2025 09:51:12 +0000 (14:51 +0500)]
[main.c] error_pretty done...
- TODO: expression() not returning NULL on failure of parsing primary!.
momoyon [Thu, 17 Apr 2025 09:19:30 +0000 (14:19 +0500)]
[main.c] Store lines info in Lexer.
momoyon [Sun, 13 Apr 2025 12:59:00 +0000 (17:59 +0500)]
[main.c] WIP: error_pretty()
momoyon [Sun, 13 Apr 2025 12:58:27 +0000 (17:58 +0500)]
[commonlib.h] Update
momoyon [Sun, 13 Apr 2025 12:40:17 +0000 (17:40 +0500)]
[test.py] Update
momoyon [Sun, 13 Apr 2025 11:19:30 +0000 (16:19 +0500)]
[main.c] Use a hashmap for identifiers...
- TODO Done: TODO: I guess we should check if the identifier has any value set here?
ahmedsamyh [Sat, 12 Apr 2025 21:32:57 +0000 (02:32 +0500)]
[main.c] WIP: parse identifiers
momoyon [Sat, 12 Apr 2025 16:43:54 +0000 (21:43 +0500)]
Update precedence table
momoyon [Sat, 12 Apr 2025 15:34:53 +0000 (20:34 +0500)]
Bump compiler version
momoyon [Sat, 12 Apr 2025 15:33:26 +0000 (20:33 +0500)]
[tests] Update tests.
momoyon [Sat, 12 Apr 2025 15:32:20 +0000 (20:32 +0500)]
[main.c] Refactor handling of flags...
- Add subcommand `dump_tokens`.
- Remove -d flag.
momoyon [Sat, 12 Apr 2025 12:02:12 +0000 (17:02 +0500)]
Add TODO
momoyon [Sat, 12 Apr 2025 11:51:01 +0000 (16:51 +0500)]
[main.c] Can actually lex characters...
- Handle every primary_expression parsing.
momoyon [Sat, 12 Apr 2025 11:25:12 +0000 (16:25 +0500)]
[main.c] Can parse the grammar of Clox...
Still has many operations to be parsed.
momoyon [Sat, 12 Apr 2025 11:06:21 +0000 (16:06 +0500)]
[main.c] Can parse Grouping in primary()
ahmedsamyh [Fri, 11 Apr 2025 20:44:48 +0000 (01:44 +0500)]
WIP: Refactor factor(); now can parse consecutive factor expressions
ahmedsamyh [Fri, 11 Apr 2025 15:20:27 +0000 (20:20 +0500)]
WIP: Refactor code structure.
ahmedsamyh [Fri, 11 Apr 2025 15:20:03 +0000 (20:20 +0500)]
[commonlib.h] Update
ahmedsamyh [Fri, 11 Apr 2025 14:28:34 +0000 (19:28 +0500)]
bump compiler version
ahmedsamyh [Fri, 11 Apr 2025 14:16:12 +0000 (19:16 +0500)]
[main.c] Can parse Factor expressions!
ahmedsamyh [Fri, 11 Apr 2025 14:15:50 +0000 (19:15 +0500)]
[commonlib.h] Update
ahmedsamyh [Fri, 11 Apr 2025 12:39:49 +0000 (17:39 +0500)]
[test.py] Update
ahmedsamyh [Tue, 8 Apr 2025 23:52:08 +0000 (04:52 +0500)]
[main.c] WIP: Expression parsing.
ahmedsamyh [Tue, 8 Apr 2025 22:46:54 +0000 (03:46 +0500)]
[main.c] Lex null.
ahmedsamyh [Tue, 8 Apr 2025 22:44:06 +0000 (03:44 +0500)]
[test] Add bool.momo
ahmedsamyh [Tue, 8 Apr 2025 22:42:26 +0000 (03:42 +0500)]
[test.py] Update
ahmedsamyh [Tue, 8 Apr 2025 22:41:40 +0000 (03:41 +0500)]
[main.c] Lex bools.
ahmedsamyh [Tue, 1 Apr 2025 14:41:47 +0000 (19:41 +0500)]
[test.py] Update
momoyon [Sun, 30 Mar 2025 15:51:53 +0000 (20:51 +0500)]
Update test.py
momoyon [Sun, 30 Mar 2025 15:51:08 +0000 (20:51 +0500)]
[test.bat] Add test script for windows.
ahmedsamyh [Sat, 29 Mar 2025 14:26:45 +0000 (19:26 +0500)]
[main.c] WIP: Reimplement parsing.
ahmedsamyh [Sat, 29 Mar 2025 14:26:28 +0000 (19:26 +0500)]
[grammar.txt] Add test grammar for Lox.
ahmedsamyh [Fri, 28 Mar 2025 15:42:03 +0000 (20:42 +0500)]
[test.py] Use newer test.py.
ahmedsamyh [Fri, 28 Mar 2025 15:41:47 +0000 (20:41 +0500)]
[main.c] Remove unnecessary logging.
momoyon [Thu, 27 Mar 2025 17:03:53 +0000 (22:03 +0500)]
Make parsing more modular...
- Can parse Floats.
momoyon [Thu, 27 Mar 2025 16:22:51 +0000 (21:22 +0500)]
Added Ast_Node_Type.
ahmedsamyh [Wed, 26 Mar 2025 22:34:10 +0000 (03:34 +0500)]
WIP: parsing.
ahmedsamyh [Wed, 26 Mar 2025 21:55:16 +0000 (02:55 +0500)]
[commonlib.h] Update
ahmedsamyh [Wed, 26 Mar 2025 21:20:39 +0000 (02:20 +0500)]
[main.c] Fix freeing non-malloced ptr in free_parser().
ahmedsamyh [Tue, 4 Mar 2025 18:54:27 +0000 (23:54 +0500)]
[main.c] WIP: Parser.
ahmedsamyh [Tue, 4 Mar 2025 18:25:17 +0000 (23:25 +0500)]
[main.c] Bump version.patch.
ahmedsamyh [Tue, 4 Mar 2025 18:23:49 +0000 (23:23 +0500)]
[testing] Now can pass input for tests.
ahmedsamyh [Tue, 4 Mar 2025 18:02:36 +0000 (23:02 +0500)]
[main.c] Bring debug printing under a variable (can change via a flag).
ahmedsamyh [Tue, 4 Mar 2025 17:56:12 +0000 (22:56 +0500)]
TODO Done: Care about window's \r\n...
ahmedsamyh [Tue, 4 Mar 2025 14:04:42 +0000 (19:04 +0500)]
[main.c] Bump version.patch
ahmedsamyh [Tue, 4 Mar 2025 14:01:58 +0000 (19:01 +0500)]
[main.c] Fix stupid include and return keyword bug...
- Add keywords.momo as test.
ahmedsamyh [Tue, 4 Mar 2025 05:10:20 +0000 (10:10 +0500)]
TODO done: Has a bug where 'int8' Gets parsed as 'int' and '8'
ahmedsamyh [Mon, 3 Mar 2025 13:14:01 +0000 (18:14 +0500)]
[main.c] Add TODO.
ahmedsamyh [Mon, 3 Mar 2025 13:06:55 +0000 (18:06 +0500)]
Parse [] and remove debug "OK" logging.
ahmedsamyh [Mon, 3 Mar 2025 13:03:54 +0000 (18:03 +0500)]
Can parse <<, <=, < and >>, >=, >
ahmedsamyh [Mon, 3 Mar 2025 12:48:44 +0000 (17:48 +0500)]
[test.py] "build" subcmd only outputs stdout on verbose output.
ahmedsamyh [Mon, 3 Mar 2025 12:46:56 +0000 (17:46 +0500)]
[test.py] Change verbose flag: -v -> -V
ahmedsamyh [Mon, 3 Mar 2025 12:45:13 +0000 (17:45 +0500)]
[testing] Prefix expected outputs with . (make it hidden)
ahmedsamyh [Mon, 3 Mar 2025 12:37:37 +0000 (17:37 +0500)]
[main.c] Can parse most* operators.
ahmedsamyh [Mon, 3 Mar 2025 12:37:11 +0000 (17:37 +0500)]
[testing] Make testing functional...
- Can record compilation behaviour.
ahmedsamyh [Sat, 1 Mar 2025 12:03:43 +0000 (17:03 +0500)]
[main.c] Accept flags (WIP)
ahmedsamyh [Fri, 28 Feb 2025 06:08:50 +0000 (11:08 +0500)]
[main.c] Can lex numbers, comments, some singlechar tokens...
- WIP: Lex operators.
ahmedsamyh [Fri, 28 Feb 2025 03:58:06 +0000 (08:58 +0500)]
[main.c] Can lex strings and keywords.
ahmedsamyh [Fri, 28 Feb 2025 03:57:41 +0000 (08:57 +0500)]
[Makefile] -Wswitch-enum
ahmedsamyh [Fri, 28 Feb 2025 03:57:27 +0000 (08:57 +0500)]
[test.py] WIP
ahmedsamyh [Wed, 26 Feb 2025 18:14:17 +0000 (23:14 +0500)]
[main.c] Added Token types.
ahmedsamyh [Wed, 26 Feb 2025 18:02:23 +0000 (23:02 +0500)]
[main.c] Fix memory issues.
ahmedsamyh [Wed, 26 Feb 2025 17:53:51 +0000 (22:53 +0500)]
[main.c] Can parse identifiers*
ahmedsamyh [Wed, 26 Feb 2025 17:27:27 +0000 (22:27 +0500)]
[main.c] Use String_view for Lexer.src.
ahmedsamyh [Wed, 26 Feb 2025 17:27:06 +0000 (22:27 +0500)]
[Makefile] use Address Sanitization (ASAN)
ahmedsamyh [Tue, 25 Feb 2025 10:56:08 +0000 (15:56 +0500)]
WIP: Trying to port python -> c.
ahmedsamyh [Thu, 28 Nov 2024 17:02:26 +0000 (22:02 +0500)]
WIP: Improve parseStatement()
ahmedsamyh [Wed, 27 Nov 2024 18:47:57 +0000 (23:47 +0500)]
Change logging of AstNodes.
ahmedsamyh [Wed, 27 Nov 2024 18:46:49 +0000 (23:46 +0500)]
parseStatement() done.
momoyo [Wed, 27 Nov 2024 17:48:47 +0000 (22:48 +0500)]
Merge pull request #3 from momoyonwork/work
work
ahmedsamyh [Sat, 23 Nov 2024 04:07:08 +0000 (09:07 +0500)]
Make ParseUnexpectedType accept variadic amount of expected_types.
ahmedsamyh [Sat, 23 Nov 2024 04:01:01 +0000 (09:01 +0500)]
TODO DONE: Make version of ParseEOF that excepts an variadic number of arguments
ahmedsamyh [Fri, 22 Nov 2024 16:30:33 +0000 (21:30 +0500)]
WIP: Reimplementing parseStatement()...
- [AstNode] Print type of AstNode.
- [ParseException] split to ParseEOF and ParseUnexpectedType
ahmedsamyh [Fri, 22 Nov 2024 15:51:45 +0000 (20:51 +0500)]
Use ParseException instead of ParseError
ahmedsamyh [Wed, 20 Nov 2024 18:25:10 +0000 (23:25 +0500)]
WIP: TODO: using exceptions for ParseError...
- More type checking stuff.
- ignore tags file.
ahmedsamyh [Wed, 20 Nov 2024 12:09:05 +0000 (17:09 +0500)]
WIP: Parsing Whole Grammer edge cases.
- Use proper typing info.
ahmedsamyh [Wed, 20 Nov 2024 11:24:44 +0000 (16:24 +0500)]
Can Parse Binary and Logical Comparisions.
ahmedsamyh [Wed, 20 Nov 2024 11:09:43 +0000 (16:09 +0500)]
Able to parse 'foo: int = 34 + 35'
ahmedsamyh [Wed, 20 Nov 2024 10:22:16 +0000 (15:22 +0500)]
parseIdentifier() and don't use pprint for logging.
momoyo [Wed, 20 Nov 2024 08:50:40 +0000 (13:50 +0500)]
Merge pull request #2 from momoyonwork/work
work
ahmedsamyh [Wed, 20 Nov 2024 08:49:03 +0000 (13:49 +0500)]
WIP: parsing Statements.
ahmedsamyh [Wed, 20 Nov 2024 06:08:36 +0000 (11:08 +0500)]
WIP: Working on Ast Parsing.
ahmedsamyh [Wed, 20 Nov 2024 06:04:09 +0000 (11:04 +0500)]
TokenType.NUMBER splitted to TokenType.{INT, FLOAT}
ahmedsamyh [Wed, 20 Nov 2024 03:51:47 +0000 (08:51 +0500)]
Token.value -> Token.lexeme
ahmedsamyh [Mon, 18 Nov 2024 17:57:11 +0000 (22:57 +0500)]
WIP: Parser
ahmedsamyh [Mon, 18 Nov 2024 17:30:11 +0000 (22:30 +0500)]
[README.md] Add hello world example.
ahmedsamyh [Mon, 18 Nov 2024 17:24:13 +0000 (22:24 +0500)]
Update README.md
ahmedsamyh [Mon, 18 Nov 2024 16:06:34 +0000 (21:06 +0500)]
Lexing step complete?
ahmedsamyh [Mon, 18 Nov 2024 16:01:41 +0000 (21:01 +0500)]
Can Parse '#'.
- No longer append 'None' to tokens.
- Updated tests.
ahmedsamyh [Mon, 18 Nov 2024 15:53:12 +0000 (20:53 +0500)]
Remove test.sh from tracking.
ahmedsamyh [Sat, 16 Nov 2024 18:24:42 +0000 (23:24 +0500)]
# TODO: Handle floating point numbers
ahmedsamyh [Sat, 16 Nov 2024 18:19:08 +0000 (23:19 +0500)]
Can Parse .
- Update tests.
ahmedsamyh [Sat, 16 Nov 2024 18:16:41 +0000 (23:16 +0500)]
Can parse integer numbers in base-10.
- Update tests.
ahmedsamyh [Sat, 16 Nov 2024 18:07:11 +0000 (23:07 +0500)]
Can parse [].
- Update tests.
ahmedsamyh [Sat, 16 Nov 2024 18:00:13 +0000 (23:00 +0500)]
Can Parse , ; : too
- Update tests.
ahmedsamyh [Sat, 16 Nov 2024 17:53:09 +0000 (22:53 +0500)]
Can parse Some Single Character Symbols...
Eg: (), {}, ->, -+, /, *, %, =, !, etc
ahmedsamyh [Sat, 16 Nov 2024 17:51:43 +0000 (22:51 +0500)]
[test.py] Iterate over the files in alphabetical order.
ahmedsamyh [Sat, 16 Nov 2024 17:21:31 +0000 (22:21 +0500)]
Fix bug in parsing identifiers.
- Update tests.
- [test.py] Bail out if any test fails (and didn't update the output).
ahmedsamyh [Sat, 16 Nov 2024 17:11:19 +0000 (22:11 +0500)]
[New test] 05-multiple-identifiers.momo
ahmedsamyh [Sat, 16 Nov 2024 17:10:06 +0000 (22:10 +0500)]
Parse multiple tokens.
- Update tests