You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
C ACE (parse*.c / codegen.c in dbenn/ACE; vidarh/ACE for Linux-port notes) is consulted only when docs and examples disagree — it is a reference, not the product. Example programs are from the original ACE prgs/ corpus.
Status legend:stub = Phase 0 behaviour · next = needed for seed suite · later = after seeds · out = out of scope for near-term browser target
Priority for seed programs
Construct
hello
loops
sieve
ackermann
input
Status
PRINT string literal
✓
✓
✓
✓
✓
done (Phase 2)
PRINT expressions
✓
✓
✓
✓
done
INPUT (prompt / ? / ,)
✓
done (Phase 3)
Comments (' / REM / {*…*})
✓
✓
✓
done
CONST
✓
done
Type defaults (DEFINT / DEFLNG / SINGLE…)
✓
✓
✓
done (accepted; JS numbers)
Assignment
✓
✓
✓
done
FOR / NEXT (+ optional STEP)
✓
✓
✓
done
WHILE / WEND
✓
done
REPEAT / UNTIL
✓
done
IF / THEN / ELSE / END IF
✓
✓
done
GOTO + line numbers
✓
done
DIM arrays
✓
done
SUB / END SUB + call / return value
✓
done
EXIT SUB
✓
done
TIMER
✓
✓
✓
done
Nested calls / recursion
✓
done
++var increment
✓
done (ACE extension used in loops.b)
1. Lexical / program shape
Item
Notes
Status
Case-insensitive keywords
Per Language Reference
next
.b / .bas source
ASCII only (no AmigaBASIC tokenised)
stub
End-of-line significant
Statements end at EOL unless continued by design
next
REM / ' comments
Full-line and trailing
stub / refine
{* … *} block comments
Guide documents block comments
later
Line numbers
Optional; required for classic GOTO targets (sieve)
next
#include / APP preprocessor
Multi-file; defer
later
Labels
Non-numeric, if used by examples
later
2. Types, declarations, storage
Item
Notes
Status
Default types / suffixes
% short, & long, ! single, $ string (AmigaBASIC-style)
demoted — in-memory VFS if an example needs it; IndexedDB optional
SERIAL
later / maybe out
MESSAGE / ACE ports
later
LIBRARY / .bmap shared libraries
open/close may be no-ops; shim only the calls examples use
ALLOC / FRE / POKE* / PEEK* / SIZEOF
ALLOC/SIZEOFdone (bst); FRE/POKE*/PEEK* later
11. Language Reference inventory (v2.35)
Complete command/function names extracted from the Reference (155 entries). Use as a coverage backstop; implement when an acceptance example requires them:
ADDRESS ALLOC AND ARG$ ARGCOUNT AREA AREAFILL ASC ASSEM ATN BACK BEEP BEVELBOX
BIN$ BREAK CALL CASE CHDIR CHR$ CINT CIRCLE CLNG CLOSE CLS COLOR CONST COS CSNG
CSRLIN CSTR DATA DATE$ DAY DECLARE DIM EOF END ERR ERROR EQV EXP EXTERNAL
FILEBOX$ FILES FIX FONT FOR..NEXT FORWARD FRE GADGET GOSUB..RETURN GOTO HANDLE
HEADING HEX$ HOME IF IFF IMP INKEY$ INPUTBOX INPUTBOX$ INPUT INPUT$ INSTR INT
KILL LEFT$ LEN LET LIBRARY LINE LOCATE LOF LOG LONGINT MENU MID$ MOD MOUSE
MSGBOX NAME NOT OCT$ OPEN OPTION OR PAINT PALETTE PATTERN PENDOWN PENUP POINT
POS POTX POTY PRINT PRINTS PSET PTAB RANDOMIZE READ REM REPEAT..UNTIL RESTORE
RIGHT$ RND SADD SAY SCREEN SCROLL SERIAL SETHEADING SETXY SGN SHARED SHL SHR
SHORTINT SINGLE SIZEOF SIN SLEEP SOUND SPACE$ SPC SQR STICK STOP STR$ STRIG
STRING STRING$ STRUCT STYLE SWAP SYSTEM TAB TAN TIME$ TIMER TRANSLATE$ TURN
TURNLEFT TURNRIGHT UCASE$ VAL VARPTR WAVE WHILE..WEND WINDOW WRITE XCOR YCOR XOR
AmigaBASIC reserved words listed but not in ACE (sprites/bobs, interpreter-only, etc.) stay out unless we deliberately add them.
Phase 2 entry criteria (from this checklist)
Implement in the JS compiler/runtime, in order, until each seed passes observable checks in examples/README.md:
Expressions + assignment + type defaults
FOR / WHILE / REPEAT + PRINT of numbers
IF / GOTO / DIM → sieve.b
SUB / recursion / EXIT SUB → ackermann.b
TIMER (browser clock; relative deltas OK)
Do not expand Intuition/graphics/audio ahead of these.