Home
Scripts
Create
Home
Source
Basic Fibonacci
Kudos: 4
Runtime:
5.03ms
Result:
21
StdOut:
The 8th fibonacci number is: 21
Script:
function fibonacci(nth) if (nth <= 1) then return nth end return fibonacci(nth - 1) + fibonacci(nth - 2) end result = fibonacci(8) print("The 8th fibonacci number is: ", result) return result
Lexer Output
KEYWORD, function IDENT, fibonacci PAREN, ( IDENT, nth PAREN, ) KEYWORD, if PAREN, ( IDENT, nth LTE, <= INT, 1 PAREN, ) KEYWORD, then KEYWORD, return IDENT, nth KEYWORD, end KEYWORD, return IDENT, fibonacci PAREN, ( IDENT, nth SUB, - INT, 1 PAREN, ) ADD, + IDENT, fibonacci PAREN, ( IDENT, nth SUB, - INT, 2 PAREN, ) KEYWORD, end IDENT, result ASSIGN, = IDENT, fibonacci PAREN, ( INT, 8 PAREN, ) IDENT, print PAREN, ( STRING, "The 8th fibonacci number is: " COMMA, , IDENT, result PAREN, ) KEYWORD, return IDENT, result
AST Output
[ { "type": "FunctionExpression", "token_count": 30, "name": "fibonacci", "args": [ "nth" ], "body": [ { "type": "Conditional", "token_count": 10, "condition": { "type": "ParenthesisExpression", "token_count": 5, "expression": { "type": "OperatorExpression", "token_count": 3, "operator": "<=", "lhs": { "type": "VariableExpression", "token_count": 1, "token": "nth" }, "rhs": { "type": "LiteralExpression", "token_count": 1, "token": "1" } } }, "then": [ { "type": "ReturnExpression", "token_count": 2, "expression": { "type": "VariableExpression", "token_count": 1, "token": "nth" } } ], "else": [] }, { "type": "ReturnExpression", "token_count": 14, "expression": { "type": "OperatorExpression", "token_count": 13, "operator": "+", "lhs": { "type": "ApplicationExpression", "token_count": 6, "method": { "type": "VariableExpression", "token_count": 1, "token": "fibonacci" }, "args": [ { "type": "OperatorExpression", "token_count": 3, "operator": "-", "lhs": { "type": "VariableExpression", "token_count": 1, "token": "nth" }, "rhs": { "type": "LiteralExpression", "token_count": 1, "token": "1" } } ] }, "rhs": { "type": "ApplicationExpression", "token_count": 6, "method": { "type": "VariableExpression", "token_count": 1, "token": "fibonacci" }, "args": [ { "type": "OperatorExpression", "token_count": 3, "operator": "-", "lhs": { "type": "VariableExpression", "token_count": 1, "token": "nth" }, "rhs": { "type": "LiteralExpression", "token_count": 1, "token": "2" } } ] } } } ] }, { "type": "AssignmentExpression", "token_count": 6, "variable": { "type": "VariableExpression", "token_count": 1, "token": "result" }, "value": { "type": "ApplicationExpression", "token_count": 4, "method": { "type": "VariableExpression", "token_count": 1, "token": "fibonacci" }, "args": [ { "type": "LiteralExpression", "token_count": 1, "token": "8" } ] } }, { "type": "ApplicationExpression", "token_count": 6, "method": { "type": "VariableExpression", "token_count": 1, "token": "print" }, "args": [ { "type": "LiteralExpression", "token_count": 1, "token": "\"The 8th fibonacci number is: \"" }, { "type": "VariableExpression", "token_count": 1, "token": "result" } ] }, { "type": "ReturnExpression", "token_count": 2, "expression": { "type": "VariableExpression", "token_count": 1, "token": "result" } } ]