Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/chermehdi/comet
/ functions
Functions
305 in github.com/chermehdi/comet
⨍
Functions
305
◇
Types & classes
52
↓ 115 callers
Function
NewToken
Creates a new token from the given literal and type.
pkg/lexer/token.go:13
↓ 53 callers
Method
Accept
(NodeVisitor)
pkg/parser/node.go:46
↓ 52 callers
Function
assertFoundInScope
(t *testing.T, ev *Evaluator, name string, expectedType std2.CometType)
pkg/eval/evaluator_test.go:1003
↓ 41 callers
Method
Eval
Evaluates the given node into a CometObject If the node is a statement a CometNop object is returned Errors are CometObject instances as well, and the
pkg/eval/evaluator.go:98
↓ 41 callers
Method
Type
Type returns the type of this instance, see CometType for details about available/possible types
pkg/std/types.go:29
↓ 33 callers
Function
NewTokenWithMeta
Creates a new token from the given literal and type.
pkg/lexer/token.go:23
↓ 25 callers
Method
advance
Changes the current token to the next token.
pkg/parser/parser.go:156
↓ 22 callers
Method
printIndent
()
pkg/debug/printer.go:84
↓ 21 callers
Method
Parse
Parse the program and return a RootNode representing the root of the AST.
pkg/parser/parser.go:162
↓ 17 callers
Function
New
(src string)
pkg/parser/parser.go:106
↓ 17 callers
Function
NewEvaluator
NewEvaluator Constructs a new evaluator Each constructed evaluator has it's own Scope, i.e variables accessible from one Evaluator Are not accessible
pkg/eval/evaluator.go:25
↓ 17 callers
Method
advanceExpect
(expected lexer.TokenType)
pkg/parser/parser.go:433
↓ 17 callers
Function
parseOrDie
(s string)
pkg/eval/evaluator_test.go:1021
↓ 14 callers
Method
advance
()
pkg/lexer/lexer.go:143
↓ 12 callers
Method
ToString
ToString returns a string representation For Debugging / REPL purposes
pkg/std/types.go:32
↓ 12 callers
Function
assertFoundType
(t *testing.T, ev *Evaluator, name string)
pkg/eval/evaluator_test.go:1010
↓ 12 callers
Method
parseExpression
This will initiate try parsing an expression with the Minimum precedence.
pkg/parser/parser.go:224
↓ 11 callers
Method
peek
()
pkg/lexer/lexer.go:154
↓ 9 callers
Method
expectNext
(expected lexer.TokenType)
pkg/parser/parser.go:440
↓ 9 callers
Method
registerPrefixFunc
Utility method to enable prefix function registration for given token types.
pkg/parser/parser.go:142
↓ 8 callers
Function
boolValue
(condition bool)
pkg/eval/evaluator.go:605
↓ 7 callers
Method
HasAny
()
pkg/parser/parser.go:75
↓ 7 callers
Method
Report
(token lexer.Token, message string, params ...interface{})
pkg/parser/parser.go:68
↓ 7 callers
Function
assertInteger
(t *testing.T, v std2.CometObject, expected int64)
pkg/eval/evaluator_test.go:991
↓ 5 callers
Function
isError
(obj std2.CometObject)
pkg/eval/evaluator.go:612
↓ 5 callers
Method
parseBlockStatement
()
pkg/parser/parser.go:337
↓ 4 callers
Function
CreateError
(s string, params ...interface{})
pkg/std/types.go:157
↓ 4 callers
Method
Declare
This function will create the symbol reference in the local scope.
pkg/eval/evaluator.go:86
↓ 4 callers
Method
Lookup
Looks up the object bound to the varName The lookup should explore the parent(s) Scope as well ans should return a tuple (obj, true) if an object is b
pkg/eval/evaluator.go:58
↓ 4 callers
Function
NewScope
Creates a new Scope with the given parent.
pkg/eval/evaluator.go:47
↓ 4 callers
Method
VisitExpression
(parser2.Expression)
pkg/debug/printer.go:90
↓ 4 callers
Function
unwrap
(result std2.CometObject)
pkg/eval/evaluator.go:153
↓ 3 callers
Method
Next
()
pkg/lexer/lexer.go:29
↓ 3 callers
Method
String
()
pkg/parser/parser.go:59
↓ 2 callers
Method
Clear
(name string)
pkg/eval/evaluator.go:90
↓ 2 callers
Method
GetMethod
GetMethod return the CometFunc name with name The second parameter is `false` if the method is not found
pkg/std/types.go:194
↓ 2 callers
Function
NewLexer
Creates an initializes a new lexer from the given input source.
pkg/lexer/lexer.go:18
↓ 2 callers
Function
applyStrOp
(op lexer2.TokenType, left std2.CometObject, right std2.CometObject)
pkg/eval/evaluator.go:577
↓ 2 callers
Function
assertBoolean
(t *testing.T, v std2.CometObject, expected bool)
pkg/eval/evaluator_test.go:985
↓ 2 callers
Function
assertError
(t *testing.T, v std2.CometObject, ExpectedErrorMsg string)
pkg/eval/evaluator_test.go:979
↓ 2 callers
Function
assertStr
(t *testing.T, v std2.CometObject, expected string)
pkg/eval/evaluator_test.go:997
↓ 2 callers
Method
callOnObject
(name string, object *std2.CometInstance, params ...Param)
pkg/eval/evaluator.go:195
↓ 2 callers
Function
extractPrimitive
(object CometObject)
pkg/std/builtins.go:96
↓ 2 callers
Function
getPrecedence
(token lexer.Token)
pkg/parser/parser.go:37
↓ 2 callers
Method
parseCallArguments
()
pkg/parser/parser.go:271
↓ 2 callers
Method
parseFunctionStatement
()
pkg/parser/parser.go:382
↓ 2 callers
Method
parseInternal
Tries to parse as long as the currentPrecedence is smaller than the precedence of the next operator. This is an implementation of the idea of a Pratt
pkg/parser/parser.go:319
↓ 2 callers
Method
parseStatement
Try to parse a statement, it's possible just by knowing the current token type because the Grammar of the language allows us to. Otherwise fallback to
pkg/parser/parser.go:179
↓ 2 callers
Method
registerBinaryFunc
Utility method to enable binary function registration for given token types.
pkg/parser/parser.go:149
↓ 1 callers
Method
Add
Add adds a method to a struct with performing sanity checks according to the language rules.
pkg/std/types.go:173
↓ 1 callers
Method
Error
()
pkg/parser/parser.go:50
↓ 1 callers
Method
EvalAssignExpression
(n *parser2.AssignExpression)
pkg/eval/evaluator.go:536
↓ 1 callers
Method
GetConstructor
GetConstructor returns the CometFunc coresponding to the constructor of this type declaration. This should only be used at first time creating an inst
pkg/std/types.go:188
↓ 1 callers
Method
Literal
()
pkg/parser/node.go:45
↓ 1 callers
Method
SetField
(instance *std2.CometInstance, name string, value parser2.Expression)
pkg/eval/evaluator.go:292
↓ 1 callers
Function
Start
(reader io.Reader, writer io.Writer)
cmd/repl/repl.go:12
↓ 1 callers
Method
Store
Stores the object and binds it to the given varName. The function will return true if the assignment of the variable has been done successfully return
pkg/eval/evaluator.go:73
↓ 1 callers
Function
ToString
ToString is the standard library's way to convert any object type to a string value. Newly added types should add their string conversion implementati
pkg/std/builtins.go:71
↓ 1 callers
Method
VisitArrayAccess
(IndexAccess)
pkg/parser/node.go:32
↓ 1 callers
Method
VisitArrayLiteral
(ArrayLiteral)
pkg/parser/node.go:27
↓ 1 callers
Method
VisitAssignExpression
(AssignExpression)
pkg/parser/node.go:31
↓ 1 callers
Method
VisitBinaryExpression
(BinaryExpression)
pkg/parser/node.go:22
↓ 1 callers
Method
VisitBlockStatement
(BlockStatement)
pkg/parser/node.go:37
↓ 1 callers
Method
VisitBooleanLiteral
(BooleanLiteral)
pkg/parser/node.go:25
↓ 1 callers
Method
VisitCallExpression
(CallExpression)
pkg/parser/node.go:30
↓ 1 callers
Method
VisitDeclarationStatement
(DeclarationStatement)
pkg/parser/node.go:35
↓ 1 callers
Method
VisitForStatement
(ForStatement)
pkg/parser/node.go:40
↓ 1 callers
Method
VisitFunctionStatement
(FunctionStatement)
pkg/parser/node.go:39
↓ 1 callers
Method
VisitFunctionStatement
(statement parser2.FunctionStatement)
pkg/debug/printer.go:169
↓ 1 callers
Method
VisitIdentifierExpression
(IdentifierExpression)
pkg/parser/node.go:29
↓ 1 callers
Method
VisitIfStatement
(IfStatement)
pkg/parser/node.go:38
↓ 1 callers
Method
VisitNewCall
(NewCallExpr)
pkg/parser/node.go:33
↓ 1 callers
Method
VisitNumberLiteral
(NumberLiteral)
pkg/parser/node.go:24
↓ 1 callers
Method
VisitParenthesisedExpression
(ParenthesisedExpression)
pkg/parser/node.go:28
↓ 1 callers
Method
VisitPrefixExpression
(PrefixExpression)
pkg/parser/node.go:23
↓ 1 callers
Method
VisitReturnStatement
(ReturnStatement)
pkg/parser/node.go:36
↓ 1 callers
Method
VisitRootNode
(RootNode)
pkg/parser/node.go:21
↓ 1 callers
Method
VisitRootNode
(node parser2.RootNode)
pkg/debug/printer.go:98
↓ 1 callers
Method
VisitStringLiteral
(StringLiteral)
pkg/parser/node.go:26
↓ 1 callers
Method
VisitStructDeclaration
(StructDeclarationStatement)
pkg/parser/node.go:41
↓ 1 callers
Function
applyBoolOp
(op lexer2.TokenType, left std2.CometObject, right std2.CometObject)
pkg/eval/evaluator.go:592
↓ 1 callers
Function
applyOp
(op lexer2.TokenType, left std2.CometObject, right std2.CometObject)
pkg/eval/evaluator.go:546
↓ 1 callers
Method
assertBinaryExpression
(expression BinaryExpression)
pkg/parser/parser_test.go:93
↓ 1 callers
Function
assertNotFoundType
(t *testing.T, ev *Evaluator, name string)
pkg/eval/evaluator_test.go:1016
↓ 1 callers
Method
assertNumberLiteralNode
(expression NumberLiteral)
pkg/parser/parser_test.go:101
↓ 1 callers
Function
consumeLexer
(l *Lexer)
pkg/lexer/lexer_test.go:179
↓ 1 callers
Method
evalArrayAccess
(arr *parser2.IndexAccess)
pkg/eval/evaluator.go:519
↓ 1 callers
Method
evalArrayElements
(arr *parser2.ArrayLiteral)
pkg/eval/evaluator.go:505
↓ 1 callers
Method
evalBinaryExpression
(n *parser2.BinaryExpression)
pkg/eval/evaluator.go:297
↓ 1 callers
Method
evalCallExpression
(n *parser2.CallExpression)
pkg/eval/evaluator.go:440
↓ 1 callers
Method
evalConditional
(n *parser2.IfStatement)
pkg/eval/evaluator.go:398
↓ 1 callers
Method
evalDeclareStatement
(n *parser2.DeclarationStatement)
pkg/eval/evaluator.go:411
↓ 1 callers
Method
evalForStatement
(n *parser2.ForStatement)
pkg/eval/evaluator.go:483
↓ 1 callers
Method
evalIdentifier
(n *parser2.IdentifierExpression)
pkg/eval/evaluator.go:422
↓ 1 callers
Method
evalNewCall
(expr *parser2.NewCallExpr)
pkg/eval/evaluator.go:161
↓ 1 callers
Method
evalPrefixExpression
(n *parser2.PrefixExpression)
pkg/eval/evaluator.go:264
↓ 1 callers
Method
evalRootNode
(statements []parser2.Statement)
pkg/eval/evaluator.go:212
↓ 1 callers
Method
evalStatements
(statements []parser2.Statement)
pkg/eval/evaluator.go:250
↓ 1 callers
Method
evalStructDecl
(decl *parser2.StructDeclarationStatement)
pkg/eval/evaluator.go:226
↓ 1 callers
Function
identifierCharacter
(c byte)
pkg/lexer/lexer.go:177
next →
1–100 of 305, ranked by callers