Skip to content

A Programming Language just for writing Fibonacci number program. :)

License

Notifications You must be signed in to change notification settings

yhirose/fiblang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FibLang

A Programming Language just for writing Fibonacci number program. :)

def fib(x)
  x < 2 ? 1 : fib(x - 2) + fib(x - 1)

for n from 1 to 30
  puts(fib(n))

Build and Run demo

> make
...
./fib fib.fib
1
2
3
5
8
13
21
34
55
89
144
233
...

PEG grammar

# Syntax
START             ← STATEMENTS
STATEMENTS        ← (DEFINITION / EXPRESSION)*
DEFINITION        ← 'def' Identifier '(' Identifier ')' EXPRESSION
EXPRESSION        ← TERNARY
TERNARY           ← CONDITION ('?' EXPRESSION ':' EXPRESSION)?
CONDITION         ← INFIX (ConditionOperator INFIX)?
INFIX             ← CALL (InfixOperator CALL)*
CALL              ← PRIMARY ('(' EXPRESSION ')')?
PRIMARY           ← FOR / Identifier / '(' EXPRESSION ')' / Number
FOR               ← 'for' Identifier 'from' Number 'to' Number EXPRESSION

# Token
ConditionOperator ← '<'
InfixOperator     ← '+' / '-'
Identifier        ← !Keyword < [a-zA-Z][a-zA-Z0-9_]* >
Number            ← < [0-9]+ >
Keyword           ← 'def' / 'for' / 'from' / 'to'

%whitespace       ← [ \t\r\n]*
%word             ← [a-zA-Z]

License

MIT

About

A Programming Language just for writing Fibonacci number program. :)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published