Skip to content

shakil-t/Lollipop-Church

Repository files navigation

Lollipop Church

Lollipop Church is an Esoteric programming language, designed and developed by Shakila Tayefeh on April 7, 2019. This programming language in which programs look like a Russian guidebook is written in Python.
The name of this programming language is obtained from the most iconic symbol of Russia, St. Basil's Cathedral. The fact that the architecture and colors of this church prompt a lollipop, has been an inspiration for the developer.
In Lollipop Church almost every keyword not only represents a Russian place, story, etc. but also is tailored to its concept. Shall we go through the structures?

  • Comment:
    Single-line comments are created by beginning a line with “Samovar” followed by a colon.
Samovar: Lollipop Church

In case you are tired of coding, you may take a break and enjoy a cup of tea made by samovar.
Talking about Russia may not be possible without mentioning ballet. Originated in Italy and France, ballet has a special place in the hearts of most Russians. If you would like to explain things in more detail, you might want to create a multiline comment simply by writing Ballet and putting your comment in double quotations.

Ballet " Lollipop Church is an Esoteric```
          programming language "
  • Output:
    As a programmer, you are able to print whatever you wish by using the function of FinlandGulf ( ). Please note that you can not print more than one variable or result of operation each time. This keyword illustrates the Gulf of Finland as an external gate.

  • Input:
    To get a variable input use the PalaceBridge() function. Considering the fact that Saint Petersburg is the Russian Venice, there are more than 342 bridges in the city to let through cargo river ships going along the Neva River to the Gulf of Finland. Palace Bridge is undoubtedly one of the most famous among all connecting Palace Square, home to the Winter Palace, the Hermitage Museum, and numerous historic attractions on Vasilevskiy Ostrov to the other side. The act of getting input is similar to the act of opening the bridges and letting the ships pass the gate.

  • Basic Operators:

    • Addition:
      To add two numbers such as x and y simply write Kievskaya [ x , y ]. Kievskaya metro station is dedicated to the friendship between Russian and Ukrainian people and is named after the capital city of Ukraine.
      A symbol of the union of two nations, Kievskaya is also the addition keyword in Lollipop Church which unites two numbers together.

    • Subtraction:
      To subtract two numbers such as x and y type Novodevichy [ x , y ]. Novodevichy Cemetery is the home to some of the most notable graves such as Chekhov and Gogol. It is designated as the subtraction keyword since it evokes a loss.

    • Multiplication:
      To multiply two numbers such as x and y simply type ScarletSails [ x , y ]. Have you read the “Scarlet Sails” novel by Alexander Grin? The story takes place in a small fishing village where Assol the daughter of a former seaman runs into an old man who claims to be a wizard and promises the girl that one day a prince will come on a ship with scarlet sails to carry her away. The villagers tease her but Assol believes her dream will eventually come true. Arthur Grey the captain of a merchant’s vessel spies Assol sleeping in the forest and falls in love with her. After learning of Assol’s dream he sets about to make it come true. Since love is the multiplication of patience and belief ScarletSails is the multiplication keyword in Lollipop Church. This keyword was suggested by Mehrnaz Ansari.

    • Division:
      To divide a number such as x by another one such as y simply type Matryoshka [ x , y].

    • Power:
      To raise a number such as x to the power of an exponent such as y simply type Peterhof [ x , y ]. Owing to the fact that Peterhof was commissioned by Peter the Great to show power as a direct response to the Palace of Versailles it is the power keyword.

    • Quotient:
      To find the quotient of a division simply type MoscowRiver [ x , y].

    • Remainder:
      To find the remainder of a division simply type NevaRiver [ x , y ].

    • <:
      Yakutsk [ x , y ] returns true if x is less than y.

    • >:
      SparrowHills [ x , y ] returns true if x is greater than y.

    • <=:
      Caspian sea [ x , y ] returns true if x is less than or equal to y.

    • >=:
      Elbrus [ x , y ] returns true if x is greater than or equal to y.

    • ==:
      StIsaacCatherdal [ x , y ] returns true if x and y are equal.

    • !=:
      SpilledBlood [ x , y ] returns true if x and y are not equal.

    • AND:
      GorkyPark [ x , y ] returns true if both x and are true.

    • OR:
      Gum [ x , y ] returns true if either of x or y is true.

  • Variable:
    Note that variable names must start with a lower case letter.

    • Integer:
      To define an integer like x=7 simply do as the following:\
    PeacockClock x ~ 7
    
    • Float:'
      To define a float like y=-85.126 simply do as the following:
    PazyrykCarpet y ~ -85.126
    
    • String:
      To define a string simply type AmberRoom s ~ ‘ Shakila ‘. If you would like to define an empty string just leave two quotations ‘ ‘.
  • Array:
    To define an array like b use the structure below:

    Hermitage b ( 0 ) ~ PalaceBridge ( )
    Hermitage b ( 1 ) ~ 12.962
    Hermitage b ( 2 ) ~ Matryoshka [ 49 , 7 ]
    
  • Loop:
    To define a loop use the structure below:

    RedSquare « 
    Statement »
    AlexanderGarden ( Condition )
    

The structure illustrates the march of soldiers from Red Square to the Tomb of The Unknown Soldier in Alexander Garden, Moscow which occurs every two hours and properly suits the concept of loops.

  • Condition:
    Use the structure below to check if a condition is true or not:
VictoryPark ( Condition ) «

  Block of code

  »

Part of this project was developed for the course Compiler in 2019 at Alzahra University and as a result it can be published partially. Furthermore, I welcome suggestions and collaborations.

Releases

No releases published

Packages

No packages published

Languages