Add True/False values
This commit is contained in:
parent
d92150f0c3
commit
eea65489c8
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
Serene --- Yet an other Lisp
|
||||||
|
|
||||||
|
Copyright (c) 2020 Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"serene-lang.org/bootstrap/pkg/ast"
|
||||||
|
)
|
||||||
|
|
||||||
|
type IError interface {
|
||||||
|
ast.ILocatable
|
||||||
|
IPrintable
|
||||||
|
IDebuggable
|
||||||
|
}
|
||||||
|
|
||||||
|
type Error struct {
|
||||||
|
Node
|
||||||
|
msg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Error) String() string {
|
||||||
|
return e.msg
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Error) ToDebugStr() string {
|
||||||
|
return e.msg
|
||||||
|
}
|
||||||
|
|
||||||
|
func MakeError(rt *Runtime, msg string) IError {
|
||||||
|
return &Error{
|
||||||
|
msg: msg,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func MakeRuntimeErrorf(rt *Runtime, msg string, a ...interface{}) IError {
|
||||||
|
return &Error{
|
||||||
|
msg: fmt.Sprintf(msg, a...),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func MakeParsetimeErrorf(n Node, msg string, a ...interface{}) IError {
|
||||||
|
return &Error{
|
||||||
|
Node: n,
|
||||||
|
msg: fmt.Sprintf(msg, a...),
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
Serene --- Yet an other Lisp
|
||||||
|
|
||||||
|
Copyright (c) 2020 Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package core
|
||||||
|
|
||||||
|
import "serene-lang.org/bootstrap/pkg/ast"
|
||||||
|
|
||||||
|
type FalseType struct{}
|
||||||
|
|
||||||
|
// False is just False not `null` or anything
|
||||||
|
var False = FalseType{}
|
||||||
|
|
||||||
|
func (n FalseType) GetType() ast.NodeType {
|
||||||
|
return ast.False
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n FalseType) GetLocation() ast.Location {
|
||||||
|
return ast.MakeUnknownLocation()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n FalseType) String() string {
|
||||||
|
return "false"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n FalseType) ToDebugStr() string {
|
||||||
|
return "false"
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
Serene --- Yet an other Lisp
|
||||||
|
|
||||||
|
Copyright (c) 2020 Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package core
|
||||||
|
|
||||||
|
import "serene-lang.org/bootstrap/pkg/ast"
|
||||||
|
|
||||||
|
type TrueType struct{}
|
||||||
|
|
||||||
|
// True is just True not `null` or anything
|
||||||
|
var True = TrueType{}
|
||||||
|
|
||||||
|
func (n TrueType) GetType() ast.NodeType {
|
||||||
|
return ast.True
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n TrueType) GetLocation() ast.Location {
|
||||||
|
return ast.MakeUnknownLocation()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n TrueType) String() string {
|
||||||
|
return "true"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n TrueType) ToDebugStr() string {
|
||||||
|
return "true"
|
||||||
|
}
|
Loading…
Reference in New Issue