Files
cval/README.md
2025-11-06 01:33:52 +09:00

49 lines
688 B
Markdown

# C-val Compiler
## Lexical Spec
* LBRACK `[`
* RBRACK `]`
* LCURLY `{`
* RCURLY `}`
* LPAREN `(`
* RPAREN `)`
* ID `[any]`
* SEMI `;`
* COMMA `,`
* ARROW `->`
* STAR `*`
* ANDREF `&`
* DOLLAR `$`
* COMMENT `#`
* NUM `[0-9]*(.[0-9]+)?`
* RETURN `return`
* IF `if`
* ELSE `else`
* STRING `"{any}"`
## Syntax Spec
```
program := defn*
defn := VAL type ID ;
| VAL type ID expr ;
expr := atom atom* ;
atom := ID
| NUM
| STR
| lambda
| compound
| reference
| dereference
stmt := defn
| expr
stmt := defn | st
```