53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
/*
|
|
Copyright (C) 2023 Brian Evans (aka sloum). All rights reserved.
|
|
|
|
This source code is available under the terms of the ffsl, or,
|
|
Floodgap Free Software License. A copy of the license has been
|
|
provided as the file 'LICENSE' in the same folder as this source
|
|
code file. If for some reason it is not present, you can find the
|
|
terms of version 1 of the FFSL at the following URL:
|
|
|
|
https://www.floodgap.com/software/ffsl/license.html
|
|
*/
|
|
|
|
package main
|
|
|
|
const (
|
|
STACK_SIZE int = 256
|
|
stackFormat string = "[ %-6s | %-15s ]\n"
|
|
|
|
// Begin types exposed to the user
|
|
INT int = iota
|
|
FLOAT
|
|
STRING
|
|
BOOL
|
|
TYPE
|
|
LIST
|
|
DICT
|
|
|
|
// Here for demarcating a range in type casting
|
|
MAXTYPE // Not used except in one function
|
|
|
|
// Begin unexposed types
|
|
PROC // A procedure (handles both proc and proc!)
|
|
WHILE // A while block
|
|
IF // An if block
|
|
SYMBOL // Symbols represent variables
|
|
KEYWORD // Keywords are procs implemented in Go
|
|
END // End closes a block for if, when, proc, and proc!
|
|
DOCSTRING // Used in proc, essentially a string type
|
|
LBRACKET // List delimiter, start
|
|
RBRACKET // List delimiter, end
|
|
TRY // Try/catch block
|
|
LCURLY // Dict delimiter, start
|
|
RCURLY // Dict delimiter, end
|
|
)
|
|
|
|
var (
|
|
debug bool = false
|
|
|
|
// This is the main stack for the language
|
|
globalStack stack = NewStack()
|
|
globalRetStack stack = NewStack()
|
|
)
|