LOLCODE has a different syntax compared to other programming languages, however, it is easier to remember. This chapter gives you the basic syntax of LOLCODE.
The LOLCODE constructs are slang words. The following table shows the alphabetical list of constructs implemented so far −
Sr.No. | Construct & Usage |
---|---|
1 | BTW It starts a single line comment. |
2 | DOWN <variable>!!<times> This corresponds to variable = variable - times. Note that "times" is a wut-only language extension. |
3 | GIMMEH <variable> This represents the input statement. |
4 | GTFO This is similar to break in other languages and provides a way to break out of a loop. |
5 | HAI This corresponds to main () function in other languages. It is the program entry point in LOLCODE. |
6 | HEREZ <label> This is another wut-only language extension and declares a label for use with SHOO |
7 | I HAS A <type> <variable> This declares a variable of said type. There are three built-in types in LOLCODE −
Note that types are a wut-only language extension. |
8 | IM IN YR LOOP This starts an infinite loop. The only way to exit the loop is using GTFO. Corresponds to for(;;) in other languages |
9 | IZ <expr1> <operator> <expr2>?: Conditional structure This is similar to if operator in other languages. Operator is one of: BIGGER THAN, SMALLER THAN, SAEM AS. Note that the ? at the end is optional. |
10 | KTHX It ends a block. Corresponds to } |
11 | KTHXBAI This ends a program |
12 | NOWAI This corresponds to else |
13 | PURR <expr> This prints argument on screen, followed by a newline. It is a wut-only language extension. |
14 | RELSE This corresponds to else (if) |
15 | SHOO This is another wut-only language extension, that corresponds to goto (the horror!) |
16 | UP <variable>!!<times> This corresponds to variables = variable + times. Here "times" is a wut-only language extension. |
17 | VISIBLE <expr> This prints the argument on screen. Note that this does not print a newline. |
18 | YARLY This denotes the start of the "true" conditional block |
Some examples of slang terms in LOLCODE are −
In most programming languages, keywords or tokens may not have spaces between them. However, in some languages, spaces are used in tokens to differentiate them.
The comma behaves like a newline keyword in most languages, for example, \n in Java and C. You can write many commands in a single line in LOLCODE, provided that you separate them using a comma (,).
The three periods (…) enables you to combine multiple lines of code into a single line or a single command by including (...) at the end of the line. This makes the compiler to treat the content of the next line as the content of previous line only. Infinite lines of code can be written together as a single command, as long as each line is ended with three periods.
A comment is terminated by a newline. Please note that the line continuation (...) and (,) after the comment (BTW) are ignored by the lci.
Single line comments are written followed by the BTW keyword. They may occur anywhere inside a program body: it can be at the first line of program, in between the program, in between some line, or at the end of a program.
All of these are valid single line comments−
I HAS A VAL ITZ 19 BTW VAL = 19 I HAS A VAL ITZ 19, BTW VAL = 19 I HAS A VAL ITZ 14 BTW VAR = 14
In LOLCODE, multiple line comments are written followed by OBTW and they are ended with TLDR.
This is a valid multi-line comment −
I HAS A VAL ITZ 51 OBTW this is a comment No it’s a two line comment Oops no.. it has many lines here TLDR
A LOLCODE program begins with HAI keyword and it should end with KTHXBYE. As LOLCODE uses shorthand language HAI basically stands for Hi and KTHXBYE can be remembered as “Ok, thanks, bye ”.
HAI 1.2 I HAS A NAME VISIBLE "NAME::"! GIMMEH NAME VISIBLE "tutorialsPoint " NAME "!" KTHXBYE