Lolcode - Syntax


Advertisements

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.

Constructs

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 −

  • NUMBAH (int)
  • DECINUMBAH (double)
  • WORDZ (std::string)

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 −

  • HAI is hi
  • KTHXBYE is okay, thanks, bye
  • BTW is by the way
  • OBTW is oh, by the way
  • TLDR is too long; didn't read

Whitespace

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.

Comma

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 (,).

Three Periods (…)

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.

Comments

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

File Creation

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 ”.

Example

HAI 1.2
I HAS A NAME
VISIBLE "NAME::"!
GIMMEH NAME
VISIBLE "tutorialsPoint " NAME "!"
KTHXBYE
Advertisements