yhirose / fiblang

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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. :)

License:MIT License


Languages

Language:C++ 97.9%Language:Makefile 2.1%