Skip to content

Commit

Permalink
Update README and test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
yukiisbored committed Jul 6, 2023
1 parent 1cd1926 commit 9c8d474
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 17 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ language inspired by [FORTH] but more arcane.

- Emulates the look and feel of a programming language from the 60s to early 70s.
- Lacks variables and registers.
- Single global stack which stores 32-bit signed integers and booleans.
- Single global stack which stores 32-bit signed integers, booleans, and strings.
- No side-effects, can only print values to a terminal.
- No Read-Eval-Print-Loop.

Expand Down
33 changes: 17 additions & 16 deletions examples/test.cauchemar
Original file line number Diff line number Diff line change
Expand Up @@ -6,77 +6,78 @@ PROGRAM:
EXAMPLE-CONDITIONAL
EXAMPLE-LOOP
EXAMPLE-COMPARISONS
PRINT ; Should display "Hello, world!"

EXAMPLE-STRING:
"Hello, world!"
"Hello, world!"

EXAMPLE-EQUALITY:
1 1 EQUALS ASSERT
1 2 EQUALS NOT ASSERT
"INTEGER EQUALITY PASS" PRINT
"INTEGER EQUALITY PASS" PRINT

TRUE TRUE EQUALS ASSERT
TRUE FALSE EQUALS NOT ASSERT
"BOOLEAN EQUALITY PASS" PRINT
"BOOLEAN EQUALITY PASS" PRINT

"A" "A" EQUALS ASSERT
"A" "B" EQUALS NOT ASSERT
"STRING EQUALITY PASS" PRINT
"A" "A" EQUALS ASSERT
"A" "B" EQUALS NOT ASSERT
"STRING EQUALITY PASS" PRINT

EXAMPLE-BOOLEAN-OPERATIONS:
TRUE TRUE AND TRUE EQUALS ASSERT
TRUE FALSE AND FALSE EQUALS ASSERT
FALSE TRUE AND FALSE EQUALS ASSERT
FALSE FALSE AND FALSE EQUALS ASSERT
"AND PASS" PRINT
"AND PASS" PRINT

TRUE TRUE OR TRUE EQUALS ASSERT
TRUE FALSE OR TRUE EQUALS ASSERT
FALSE TRUE OR TRUE EQUALS ASSERT
FALSE FALSE OR FALSE EQUALS ASSERT
"OR PASS" PRINT
"OR PASS" PRINT

TRUE NOT FALSE EQUALS ASSERT
FALSE NOT TRUE EQUALS ASSERT
"NOT PASS" PRINT
"NOT PASS" PRINT

EXAMPLE-ARITHMETIC:
1 2 + 3 EQUALS ASSERT
1 2 - -1 EQUALS ASSERT
1 2 * 2 EQUALS ASSERT
1 2 / 0 EQUALS ASSERT
"MATH ARITHMETIC PASS" PRINT
"MATH ARITHMETIC PASS" PRINT

EXAMPLE-CONDITIONAL:
TRUE IF TRUE ASSERT ELSE FALSE ASSERT THEN
FALSE IF FALSE ASSERT THEN
"CONTROL FLOW PASS" PRINT
"CONTROL FLOW PASS" PRINT

EXAMPLE-LOOP:
5 DO
1 -
DUP 0 GREATER-THAN
WHILE
0 EQUALS ASSERT
"LOOP PASS" PRINT
"LOOP PASS" PRINT

EXAMPLE-COMPARISONS:
1 2 GREATER-THAN FALSE EQUALS ASSERT
2 1 GREATER-THAN TRUE EQUALS ASSERT
1 1 GREATER-THAN FALSE EQUALS ASSERT
"GREATER-THAN PASS" PRINT
"GREATER-THAN PASS" PRINT

1 2 GREATER-EQUAL FALSE EQUALS ASSERT
2 1 GREATER-EQUAL TRUE EQUALS ASSERT
1 1 GREATER-EQUAL TRUE EQUALS ASSERT
"LESS-THAN PASS" PRINT
"LESS-THAN PASS" PRINT

1 2 LESS-THAN TRUE EQUALS ASSERT
2 1 LESS-THAN FALSE EQUALS ASSERT
1 1 LESS-THAN FALSE EQUALS ASSERT
"LESS-THAN PASS" PRINT
"LESS-THAN PASS" PRINT

1 2 LESS-EQUAL TRUE EQUALS ASSERT
2 1 LESS-EQUAL FALSE EQUALS ASSERT
1 1 LESS-EQUAL TRUE EQUALS ASSERT
"LESS-EQUAL PASS" PRINT
"LESS-EQUAL PASS" PRINT

0 comments on commit 9c8d474

Please sign in to comment.