Documentation
¶
Index ¶
- Constants
- func GetChild(node *ts.Node, fieldName string) *ts.Node
- func GetChildren(node *ts.Node, fieldName string) []ts.Node
- func GetSrc(node *ts.Node, src string) string
- type Error
- type MapNamedKey
- type RadNode
- type RadType
- type TypingAnyListT
- type TypingAnyMapT
- type TypingAnyT
- type TypingBoolT
- type TypingCompatVal
- func NewBoolSubject(val bool) TypingCompatVal
- func NewErrorSubject() TypingCompatVal
- func NewFloatSubject(val float64) TypingCompatVal
- func NewFnSubject() TypingCompatVal
- func NewIntSubject(val int64) TypingCompatVal
- func NewListSubject() TypingCompatVal
- func NewMapSubject() TypingCompatVal
- func NewNullSubject() TypingCompatVal
- func NewStrSubject(val string) TypingCompatVal
- func NewSubject(val interface{}) TypingCompatVal
- func NewVoidSubject() TypingCompatVal
- type TypingErrorT
- type TypingFloatT
- type TypingFnParam
- type TypingFnT
- type TypingIntT
- type TypingListT
- type TypingMapT
- type TypingOptionalT
- type TypingStrEnumT
- type TypingStrT
- type TypingStructT
- type TypingT
- type TypingTupleT
- type TypingUnionT
- type TypingVarArgT
- type TypingVoidT
Constants ¶
View Source
const ( // Node Kinds K_COMMENT = "comment" K_SOURCE_FILE = "source_file" K_SHEBANG = "shebang" K_FILE_HEADER = "file_header" K_ARG_BLOCK = "arg_block" K_ASSIGN = "assign" K_EXPR = "expr" K_PRIMARY_EXPR = "primary_expr" K_PARENTHESIZED_EXPR = "parenthesized_expr" K_LITERAL = "literal" K_VAR_PATH = "var_path" K_INT = "int" K_BOOL = "bool" K_FLOAT = "float" K_LIST = "list" K_NULL = "null" K_CALL = "call" K_OR_EXPR = "or_expr" K_AND_EXPR = "and_expr" K_COMPARE_EXPR = "compare_expr" K_ADD_EXPR = "add_expr" K_MULT_EXPR = "mult_expr" K_UNARY_EXPR = "unary_expr" K_INDEXED_EXPR = "indexed_expr" K_STRING = "string" K_STRING_CONTENT = "string_content" K_BACKSLASH = "\\" K_ESC_BACKSLASH = "esc_backslash" K_ESC_SINGLE_QUOTE = "esc_single_quote" K_ESC_DOUBLE_QUOTE = "esc_double_quote" K_ESC_BACKTICK = "esc_backtick" K_ESC_NEWLINE = "esc_newline" K_ESC_TAB = "esc_tab" K_ESC_OPEN_BRACKET = "esc_open_bracket" K_INTERPOLATION = "interpolation" K_MAP = "map" K_IDENTIFIER = "identifier" K_COMPOUND_ASSIGN = "compound_assign" K_PLUS_EQUAL = "+=" K_MINUS_EQUAL = "-=" K_STAR_EQUAL = "*=" K_SLASH_EQUAL = "/=" K_PERCENT_EQUAL = "%=" K_PLUS = "+" K_MINUS = "-" K_NOT = "not" K_IF_STMT = "if_stmt" K_BREAK_STMT = "break_stmt" K_CONTINUE_STMT = "continue_stmt" K_FOR_LOOP = "for_loop" K_WHILE_LOOP = "while_loop" K_DEFER_BLOCK = "defer_block" K_SLICE = "slice" K_SHELL_STMT = "shell_stmt" K_CRITICAL_SHELL_CMD = "critical_shell_cmd" K_FAIL = "fail" K_DEL_STMT = "del_stmt" K_JSON_PATH = "json_path" K_RAD_BLOCK = "rad_block" K_RAD_FIELD_STMT = "rad_field_stmt" K_RAD_SORT_STMT = "rad_sort_stmt" K_RAD_SORT_SPECIFIER = "rad_sort_specifier" K_ASC = "asc" K_DESC = "desc" K_RAD_FIELD_MODIFIER_STMT = "rad_field_modifier_stmt" K_RAD_FIELD_MOD_COLOR = "rad_field_mod_color" K_RAD_FIELD_MOD_MAP = "rad_field_mod_map" K_RAD_IF_STMT = "rad_if_stmt" K_LIST_COMPREHENSION = "list_comprehension" K_ERROR = "ERROR" K_INCR_DECR = "incr_decr" K_PLUS_PLUS = "++" K_MINUS_MINUS = "--" K_TERNARY_EXPR = "ternary_expr" K_SWITCH_STMT = "switch_stmt" K_SWITCH_CASE_EXPR = "switch_case_expr" K_SWITCH_CASE_BLOCK = "switch_case_block" K_FN_LAMBDA = "fn_lambda" K_PASS = "pass_stmt" K_FN_NAMED = "fn_named" K_RETURN_STMT = "return_stmt" K_YIELD_STMT = "yield_stmt" K_STRING_TYPE = "string_type" K_INT_TYPE = "int_type" K_FLOAT_TYPE = "float_type" K_BOOL_TYPE = "bool_type" K_LIST_TYPE = "list_type" K_ERROR_TYPE = "error_type" K_ANY_TYPE = "any_type" K_VOID_TYPE = "void_type" K_FN_TYPE = "fn_type" K_MAP_TYPE = "map_type" K_MAP_ENTRY_TYPE = "map_entry_type" // Field names F_LEFT = "left" F_LEFTS = "lefts" F_RIGHT = "right" F_ROOT = "root" F_INDEXING = "indexing" F_INDEX = "index" F_LIST_ENTRY = "list_entry" F_FUNC = "func" F_ARG = "arg" F_NAMED_ARG = "named_arg" F_OP = "op" F_CONTENTS = "contents" F_EXPR = "expr" F_FORMAT = "format" F_ALIGNMENT = "alignment" F_PADDING = "padding" F_PRECISION = "precision" F_MAP_ENTRY = "map_entry" F_KEY = "key" F_VALUE = "value" F_ALT = "alt" F_CONDITION = "condition" F_STMT = "stmt" F_KEYWORD = "keyword" F_START = "start" F_END = "end" F_SHELL_CMD = "shell_cmd" F_QUIET_MOD = "quiet_mod" F_CONFIRM_MOD = "confirm_mod" F_COMMAND = "command" F_RESPONSE = "response" F_SEGMENT = "segment" F_SOURCE = "source" F_RAD_TYPE = "rad_type" F_IDENTIFIER = "identifier" F_SPECIFIER = "specifier" F_MOD_STMT = "mod_stmt" F_COLOR = "color" F_REGEX = "regex" F_LAMBDA = "lambda" F_TRUE_BRANCH = "true_branch" F_FALSE_BRANCH = "false_branch" F_NAME = "name" F_FIRST = "first" F_SECOND = "second" F_DISCRIMINANT = "discriminant" F_CASE = "case" F_CASE_KEY = "case_key" F_DEFAULT = "default" F_YIELD_STMT = "yield_stmt" F_RETURN_STMT = "return_stmt" F_DELEGATE = "delegate" F_PARAM = "param" F_METADATA_ENTRY = "metadata_entry" F_BLOCK_COLON = "block_colon" F_CATCH = "catch" F_TYPE = "type" F_RETURN_TYPE = "return_type" F_VARARG_MARKER = "vararg_marker" F_OPTIONAL = "optional" F_LEAF_TYPE = "leaf_type" F_ANY = "any" F_ENUM = "enum" F_NAMED_ENTRY = "named_entry" F_KEY_NAME = "key_name" F_KEY_TYPE = "key_type" F_VALUE_TYPE = "value_type" F_LIST = "list" F_NORMAL_PARAM = "normal_param" F_NAMED_ONLY_PARAM = "named_only_param" F_VARARG_PARAM = "vararg_param" // Keywords KEYWORD_ASC = "asc" KEYWORD_DESC = "desc" KEYWORD_RAD = "rad" KEYWORD_REQUEST = "request" KEYWORD_DISPLAY = "display" // Types T_STR = "str" T_STR_LIST = "str[]" T_INT = "int" T_INT_LIST = "int[]" T_FLOAT = "float" T_FLOAT_LIST = "float[]" T_BOOL = "bool" T_BOOL_LIST = "bool[]" T_ERROR = "error" T_ANY = "any" T_VOID = "void" T_LIST = "list" T_MAP = "map" )
View Source
const ( // 1xxxx Syntax Errors ErrInvalidSyntax Error = "10001" // 2xxxx Runtime Errors ErrGenericRuntime Error = "20000" ErrParseIntFailed Error = "20001" ErrParseFloatFailed = "20002" ErrFileRead = "20003" ErrFileNoPermission = "20004" ErrFileNoExist = "20005" ErrFileWrite = "20006" ErrAmbiguousEpoch = "20007" ErrInvalidTimeUnit = "20008" ErrInvalidTimeZone = "20009" ErrUserInput = "20010" ErrParseJson = "20011" ErrBugTypeCheck = "20012" ErrFileWalk = "20013" ErrMutualExclArgs = "20014" ErrZipStrict = "20015" ErrCast = "20016" ErrNumInvalidRange = "20017" ErrEmptyList = "20018" ErrArgsContradict = "20019" ErrFid = "20020" ErrDecode = "20021" ErrNoStashId = "20022" ErrSleepStr = "20023" ErrInvalidRegex = "20024" ErrColorizeValNotInEnum = "20025" )
note to reader: I am currently very inconsistently applying these errors. still debating if we should them, feel free to ignore if you're implementing something. Note: when adding here, updating the reference!! " docs/reference/errors.md "
Variables ¶
This section is empty.
Functions ¶
Types ¶
type MapNamedKey ¶
func NewMapNamedKey ¶
func NewMapNamedKey(name *RadNode, isOptional bool) MapNamedKey
type TypingAnyListT ¶
type TypingAnyListT struct{} // var: list i.e. any[]
Collections
func NewAnyListType ¶
func NewAnyListType() *TypingAnyListT
func (*TypingAnyListT) IsCompatibleWith ¶
func (t *TypingAnyListT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingAnyListT) Name ¶
func (t *TypingAnyListT) Name() string
type TypingAnyMapT ¶
type TypingAnyMapT struct{} // var: map i.e. { any: any }
func NewAnyMapType ¶
func NewAnyMapType() *TypingAnyMapT
func (*TypingAnyMapT) IsCompatibleWith ¶
func (t *TypingAnyMapT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingAnyMapT) Name ¶
func (t *TypingAnyMapT) Name() string
type TypingAnyT ¶
type TypingAnyT struct{} // var: any
func NewAnyType ¶
func NewAnyType() *TypingAnyT
func (*TypingAnyT) IsCompatibleWith ¶
func (t *TypingAnyT) IsCompatibleWith(TypingCompatVal) bool
func (*TypingAnyT) Name ¶
func (t *TypingAnyT) Name() string
type TypingBoolT ¶
type TypingBoolT struct{} // var: bool
func NewBoolType ¶
func NewBoolType() *TypingBoolT
func (*TypingBoolT) IsCompatibleWith ¶
func (t *TypingBoolT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingBoolT) Name ¶
func (t *TypingBoolT) Name() string
type TypingCompatVal ¶
type TypingCompatVal struct {
Val interface{} // Specific int64, float64, string, bool, []interface{}, map[string]interface{}
Type *RadType
Evaluator *func(*ts.Node, string) interface{}
}
first check Val, then Type
func NewBoolSubject ¶
func NewBoolSubject(val bool) TypingCompatVal
func NewErrorSubject ¶
func NewErrorSubject() TypingCompatVal
func NewFloatSubject ¶
func NewFloatSubject(val float64) TypingCompatVal
func NewFnSubject ¶
func NewFnSubject() TypingCompatVal
func NewIntSubject ¶
func NewIntSubject(val int64) TypingCompatVal
func NewListSubject ¶
func NewListSubject() TypingCompatVal
func NewMapSubject ¶
func NewMapSubject() TypingCompatVal
func NewNullSubject ¶
func NewNullSubject() TypingCompatVal
func NewStrSubject ¶
func NewStrSubject(val string) TypingCompatVal
func NewSubject ¶
func NewSubject(val interface{}) TypingCompatVal
func NewVoidSubject ¶
func NewVoidSubject() TypingCompatVal
type TypingErrorT ¶
type TypingErrorT struct{} // var: error
func NewErrorType ¶
func NewErrorType() *TypingErrorT
func (*TypingErrorT) IsCompatibleWith ¶
func (t *TypingErrorT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingErrorT) Name ¶
func (t *TypingErrorT) Name() string
type TypingFloatT ¶
type TypingFloatT struct{} // var: float
func NewFloatType ¶
func NewFloatType() *TypingFloatT
func (*TypingFloatT) IsCompatibleWith ¶
func (t *TypingFloatT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingFloatT) Name ¶
func (t *TypingFloatT) Name() string
type TypingFnParam ¶
type TypingFnParam struct {
Name string
Type *TypingT
IsVariadic bool // vararg
NamedOnly bool // if true, can only be passed as a named arg
IsOptional bool
Default *RadNode // if no default, this is nil
}
func (TypingFnParam) AnonymousOnly ¶
func (t TypingFnParam) AnonymousOnly() bool
type TypingFnT ¶
type TypingFnT struct {
Name string // empty if anonymous
Params []TypingFnParam
ReturnT *TypingT
}
Complex / Unions / Misc
func NewTypingFnT ¶
K_FN_NAMED expected as node
func (*TypingFnT) ByName ¶
func (t *TypingFnT) ByName() map[string]TypingFnParam
type TypingIntT ¶
type TypingIntT struct{} // var: int
func NewIntType ¶
func NewIntType() *TypingIntT
func (*TypingIntT) IsCompatibleWith ¶
func (t *TypingIntT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingIntT) Name ¶
func (t *TypingIntT) Name() string
type TypingListT ¶
type TypingListT struct {
// contains filtered or unexported fields
}
func NewListType ¶
func NewListType(elem TypingT) *TypingListT
func (*TypingListT) IsCompatibleWith ¶
func (t *TypingListT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingListT) Name ¶
func (t *TypingListT) Name() string
type TypingMapT ¶
type TypingMapT struct {
// contains filtered or unexported fields
}
func NewMapType ¶
func NewMapType(key, val TypingT) *TypingMapT
func (*TypingMapT) IsCompatibleWith ¶
func (t *TypingMapT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingMapT) Name ¶
func (t *TypingMapT) Name() string
type TypingOptionalT ¶
type TypingOptionalT struct {
// contains filtered or unexported fields
}
func NewOptionalType ¶
func NewOptionalType(t TypingT) *TypingOptionalT
func (*TypingOptionalT) IsCompatibleWith ¶
func (t *TypingOptionalT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingOptionalT) Name ¶
func (t *TypingOptionalT) Name() string
type TypingStrEnumT ¶
type TypingStrEnumT struct {
// contains filtered or unexported fields
}
func NewStrEnumType ¶
func NewStrEnumType(stringNodes ...*RadNode) *TypingStrEnumT
func (*TypingStrEnumT) IsCompatibleWith ¶
func (t *TypingStrEnumT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingStrEnumT) Name ¶
func (t *TypingStrEnumT) Name() string
type TypingStrT ¶
type TypingStrT struct{} // var: str
Primitives / Union Primitives
func NewStrType ¶
func NewStrType() *TypingStrT
func (*TypingStrT) IsCompatibleWith ¶
func (t *TypingStrT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingStrT) Name ¶
func (t *TypingStrT) Name() string
type TypingStructT ¶
type TypingStructT struct {
// contains filtered or unexported fields
}
func NewStructType ¶
func NewStructType(named map[MapNamedKey]TypingT) *TypingStructT
func (*TypingStructT) IsCompatibleWith ¶
func (t *TypingStructT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingStructT) Name ¶
func (t *TypingStructT) Name() string
type TypingT ¶
type TypingT interface {
Name() string
IsCompatibleWith(val TypingCompatVal) bool
}
type TypingTupleT ¶
type TypingTupleT struct {
// contains filtered or unexported fields
}
func NewTupleType ¶
func NewTupleType(types ...TypingT) *TypingTupleT
func (*TypingTupleT) IsCompatibleWith ¶
func (t *TypingTupleT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingTupleT) Name ¶
func (t *TypingTupleT) Name() string
type TypingUnionT ¶
type TypingUnionT struct {
// contains filtered or unexported fields
}
func NewUnionType ¶
func NewUnionType(types ...TypingT) *TypingUnionT
func (*TypingUnionT) IsCompatibleWith ¶
func (t *TypingUnionT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingUnionT) Name ¶
func (t *TypingUnionT) Name() string
type TypingVarArgT ¶
type TypingVarArgT struct {
// contains filtered or unexported fields
}
Modifiers
func NewVarArgType ¶
func NewVarArgType(t TypingT) *TypingVarArgT
func (*TypingVarArgT) IsCompatibleWith ¶
func (t *TypingVarArgT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingVarArgT) Name ¶
func (t *TypingVarArgT) Name() string
type TypingVoidT ¶
type TypingVoidT struct{} // -> void
func NewVoidType ¶
func NewVoidType() *TypingVoidT
func (*TypingVoidT) IsCompatibleWith ¶
func (t *TypingVoidT) IsCompatibleWith(val TypingCompatVal) bool
func (*TypingVoidT) Name ¶
func (t *TypingVoidT) Name() string
Click to show internal directories.
Click to hide internal directories.