nondescript/src/ndspkg/compv2/types.nim

36 lines
611 B
Nim

import ../scanner
import ../chunk
import ../types/value
type
Parser* = ref object
scanner*: Scanner
current*: Token
previous*: Token
hadError*: bool
panicMode*: bool
NodeKind* = enum
nkBlockExpr, nkRoot,
nkExprStmt,
nkBreak,
nkConst
Node* = ref object
case kind*: NodeKind:
of nkBlockExpr, nkRoot:
children*: seq[Node]
of nkExprStmt:
expression*: Node
of nkBreak:
label*: string
of nkConst:
constant*: NdValue
CompileResult* = object
case ok*: bool:
of true:
chunk*: Chunk
of false:
discard