From 947873b34aabe46dfb9f8d06214736cb11b5a6b2 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Wed, 9 Aug 2023 11:47:39 +0200 Subject: codegen: add a bytecode generator (#5) * codegen: add a bytecode generator * cleaning scanner, parser and vm1. --- scanner/scan.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'scanner/scan.go') diff --git a/scanner/scan.go b/scanner/scan.go index 89d660e..066fc2a 100644 --- a/scanner/scan.go +++ b/scanner/scan.go @@ -46,14 +46,17 @@ type Token struct { value any } -func (t *Token) Kind() Kind { return t.kind } -func (t *Token) Content() string { return t.content } -func (t *Token) Start() int { return t.start } -func (t *Token) End() int { return t.end } -func (t *Token) Pos() int { return t.pos } -func (t *Token) Block() string { return t.content[t.start : len(t.content)-t.end] } -func (t *Token) Prefix() string { return t.content[:t.start] } -func (t *Token) Value() any { return t.value } +func (t *Token) Kind() Kind { return t.kind } +func (t *Token) Content() string { return t.content } +func (t *Token) Start() int { return t.start } +func (t *Token) End() int { return t.end } +func (t *Token) Pos() int { return t.pos } +func (t *Token) Block() string { return t.content[t.start : len(t.content)-t.end] } +func (t *Token) Prefix() string { return t.content[:t.start] } +func (t *Token) Value() any { return t.value } +func (t *Token) IsBlock() bool { return t.kind == Block } +func (t *Token) IsOperator() bool { return t.kind == Operator } +func (t *Token) IsSeparator() bool { return t.kind == Separator } func (t *Token) Name() string { name := t.content -- cgit v1.2.3