# deja **Repository Path**: jfiewo/deja ## Basic Information - **Project Name**: deja - **Description**: No description available - **Primary Language**: Unknown - **License**: ISC - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-26 - **Last Updated**: 2026-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Déjà Vu It is a programming language. Stack-based. Semi-functional. Backwards. Inspired by Python and Forth. I'm talking about Déjà Vu. # Setting up the virtual machine $ cd vm/ $ make $ cd .. # Running things Assuming you have a module called `yourfile.deja`, you can compile and run it with: $ vm/vu yourfile.deja # Examples ## Hello world !print "Hello world!" ## Fibonacci fib a: if > 1 a: fib - 1 a fib - 2 a + elseif = a 1: 1 else: 0 ## Quine "!print !. dup" !print !. dup ## Fractions . * 1/3 3/2 # prints 1/2 # Grammar If you know what [BNF](http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form) is, here's the one for Déjà Vu: Program ::= * Block ::= ":" + ( )+ | + | | IfBlock ::= "if" ":" + ( )+ ("elseif" ? ":" + ( )+)* ("else" ? ":" + ( )+)? TryBlock ::= "try" ? ":" + ( )+ ("catch" ( )+ ? ":" + ( )+)* Head ::= "while" | "for" ( )? ? | "repeat" | "func" | "local" | "labda" | Indentation ::= (" " | )* Line ::= ( ( )*)? ? Arguments ::= ( )* ? Space ::= (" " | )+ Word ::= ProperWord | Get | Identity | String | Number | Fraction Get ::= "@" ? Identity ::= ":" ? ProperWord ::= + String ::= '"' * '"' Number ::= '-'? ('.' )? Fraction ::= '-'? '/' Digits ::= ('0'..'9')+ Char ::= any non-whitespace, non-# character StringChar ::= any character other than a double quote