Aryadev Chavali 6d507e239c parser: Better AST primitives
commit 1588e7b46d
Author: Aryadev Chavali <aryadev@aryadevchavali.com>
Date:   Sat Jan 24 02:55:12 2026 +0000

    parser/parser: parse_symbol now supports primitives

    parse_symbol now investigates if the parsed symbol data is actually
    just a primitive (linear search through all primitives).  If it is,
    return a primitive first.  Otherwise, generate a symbol as per
    previous form of routine.

commit 62c91990c4
Author: Aryadev Chavali <aryadev@aryadevchavali.com>
Date:   Sat Jan 24 02:40:26 2026 +0000

    parser/ast: Added support for node level primitives

    These are just an enumeration of primitives we already expect to be
    present within a program.  Instead of leaving everything as a symbol,
    we can compile certain symbols into the enumeration ahead of time to
    make later stages easier.
2026-01-24 02:58:07 +00:00
2026-01-22 21:25:30 +00:00
2026-01-24 02:58:07 +00:00
2026-01-22 21:25:30 +00:00
2026-01-22 21:25:30 +00:00
2026-01-24 00:35:38 +00:00
2026-01-22 18:06:42 +00:00
2026-01-24 00:35:38 +00:00

┌───────────────────────┐
│     _    ____  _      │
│    / \  |  _ \| |     │
│   / _ \ | |_) | |     │
│  / ___ \|  _ <| |___  │
│ /_/   \_\_| \_\_____| │
└───────────────────────┘

Similar to Forth.  Compiles to C.
Native speed with simple semantics.

-----
Goals
-----
- Complete operational transpiler to C
- Ability to reuse compiled code (as object code) in top level ARL code.
- Static type system with informative errors

-------------
Issue tracker
-------------
See arl.org.

------------
Requirements
------------
- C compiler with support for C23, accessible via PATH
- GNU Make

------------------
Build instructions
------------------
$ make
... will generate a binary "arlc.out" in the build folder, which may be used to
compile ".arl" files into native code.

$ make MODE=debug
... will generate a debug binary that may be used for further examination and
logging.

You may specify the folder build artifacts are generated in by setting the DIST
variable in your make invocation i.e.
$ make DIST=<folder>

Similarly, the general flags used in the C compiler may be set via the CFLAGS
variable, with linking arguments set via the LDFLAGS variable.
Description
No description provided
Readme MIT 160 KiB
Languages
C 95.6%
Makefile 4.4%