Skip to content

bjouhier/node-lol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I CAN HAS NODE.JS

Installation

npm install -g node-lol

Example

$ cat > hello.lol
HAI
I HAS A DELAY ITZ 1000

HOW DUZ I SALUTE YR DUZ WAYT AN YR YOU
	VISIBLE "WAIT A SEC..."
	setTimeout WIZ WAYT AN DELAY ENUF
	VISIBLE "MOAR WAIT..."
	setTimeout WIZ WAYT AN DELAY ENUF
	VISIBLE SMOOSH "HELLO " AN YOU
IF U SAY SO

SALUTE WIZ WAYT AN " DUDE" ENUF
KTHXBYE
^D
$ lol hello

You can also directly run it:

$ lol examples/hello

Syntax

See http://code.google.com/p/loljs/

The language has been slightly changed/extended to better deal with node and JavaScript.

Properties and function calls

FOO 'Z BAR -> FOO.BAR

FOO WIZ BAR AN ZOO ENUF -> FOO(BAR, ZOO)

FOO WIZ ENUF -> FOO()

First class functions

You cannot call user functions as FOO ARG any more, you have to call them as FOO WIZ ARG ENUF.

FOO alone represents the function. You can manipulate it as a first class object.

Require

CAN HAS FS 'fs'? -> var FS = require('fs');

Asynchronous code

EZ!

To wait on an async call and get a result, just pass WAYTor WAIT for the callback arguement:

I HAS A TXT ITZ FS 'Z readFile WIZ PATH AN "utf8" AN WAYT ENUF
VISIBLE TXT

If you don't want to wait, pass LATR or LATER instead and you will obtain a future on which you can wait to get the result later:

I HAS A READER ITS FS 'Z readFile WIZ PATH AN "utf8" AN LATR ENUF
BTW DO OTHER THINGS ....
I HAS A TXT ITS READER WIZ WAYT ENUF
VISIBLE TXT

To define asynchronous functions. Just give it a DUZ WAYT or DUZ WAIT parameter:

HOW DUZ I READTEXT YR DUZ WAYT AN YR PATH
  FOUND FS 'Z readFile WIZ PATH AN "utf8" AN WAYT ENUF
IF U SAY SO

Credits

I (Bruno) didn't do much. All the hard work was pulled by Mark Watkinson.

See http://code.google.com/p/loljs/ and copyright notice in lib/loljs.js for details