sync: 2026-03-17 08:00 — 21 files from Alexandria
Some checks failed
Lint & Format / detect (push) Failing after 36s
Monorepo Lint / lint-shell (push) Failing after 40s
Monorepo Lint / lint-js (push) Failing after 40s
Lint & Format / js-lint (push) Has been skipped
Lint & Format / py-lint (push) Has been skipped
Lint & Format / sh-lint (push) Has been skipped
Lint & Format / go-lint (push) Has been skipped
Some checks failed
Lint & Format / detect (push) Failing after 36s
Monorepo Lint / lint-shell (push) Failing after 40s
Monorepo Lint / lint-js (push) Failing after 40s
Lint & Format / js-lint (push) Has been skipped
Lint & Format / py-lint (push) Has been skipped
Lint & Format / sh-lint (push) Has been skipped
Lint & Format / go-lint (push) Has been skipped
RoadChain-SHA2048: 59e0f844fc760998 RoadChain-Identity: alexa@sovereign RoadChain-Full: 59e0f844fc760998d8a3ce5f7d219f21bf7a4b82472c28ebe3e1258438b6770dac3c13ca3f8a43275319408ec7847d36f0031322f7608066c4f8bdd225b2b127eb1c1f3d773ea645b9569eaf9d430766951c0613bf350f2db285cc35fccead7e4a9608b46fd8e057561a25705cf4cc5aaf9abedc4cce547df8008777c4af3b2f2578c2a0eb47489f660eb108414dd7f8d3ada3e2d4062e50cc1d29099f5fa3490e6e44a7216ed37cd761bc507e3d855558935931f27c19981f26c1d2d2c91a9b1b227e3ee7650ab885eaa69aabb856110557d98346a0807bacb36142c0b7fd1510158fdd5d9756f9f2e2d7f1d5d2b0ee8b1277025f8d9a9cafd9cfb536abf568
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
"""
|
||||
RoadC Language - Tree-Walking Interpreter
|
||||
Executes AST nodes produced by the parser
|
||||
Includes ternary runtime (BlackBox Protocol)
|
||||
"""
|
||||
|
||||
from ast_nodes import *
|
||||
from ternary import Trit, TernaryWord, TernaryRouter, ARRIVED, WAITING, CANCELLED
|
||||
|
||||
|
||||
class ReturnSignal(Exception):
|
||||
@@ -47,6 +49,30 @@ class Environment:
|
||||
class Interpreter:
|
||||
def __init__(self):
|
||||
self.global_env = Environment()
|
||||
self.router = TernaryRouter()
|
||||
self._setup_builtins()
|
||||
|
||||
def _setup_builtins(self):
|
||||
"""Register built-in functions including ternary operations"""
|
||||
env = self.global_env
|
||||
# Standard
|
||||
env.set('print', lambda *args: print(*args))
|
||||
env.set('len', len)
|
||||
env.set('range', lambda *a: list(range(*a)))
|
||||
env.set('str', str)
|
||||
env.set('int', int)
|
||||
env.set('float', float)
|
||||
env.set('type', lambda x: type(x).__name__)
|
||||
# Ternary
|
||||
env.set('trit', lambda v=0: Trit(v))
|
||||
env.set('ARRIVED', ARRIVED)
|
||||
env.set('WAITING', WAITING)
|
||||
env.set('CANCELLED', CANCELLED)
|
||||
env.set('tword', lambda v=0, w=8: TernaryWord(v, w))
|
||||
# Routing
|
||||
env.set('route', lambda rid, paths: self.router.route(rid, paths))
|
||||
env.set('resolve', lambda rid, pid, result=None: self.router.resolve(rid, pid, result))
|
||||
env.set('route_status', lambda: self.router.status())
|
||||
|
||||
def run(self, program):
|
||||
for stmt in program.statements:
|
||||
|
||||
Reference in New Issue
Block a user