Programming++


Programming++
is Bangladesh's 2nd Programming Language. For Contact me go to :

https://searchbd.netlify.app/contact


Programming++ is a general-purpose programming language created by Abir Abedin Khan as an extension of the Programming++ is (.progpp). The language has expanded significantly over time. This language is developed in python. 


Download

To download the main file Click on the below button




What is a Programming language?

programming language is a formal language comprising a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms.

                                                            [Source: Wikipedia]

How To Use


For More Tutorial Subscribe to my YouTube Channel link: https://www.youtube.com/c/AbirAbedinKhan

Playlist: https://www.youtube.com/playlist?list=PL3K9ZTYstSclLS7FxwCMcAKkteRoX_Cd5


Grammar

statements  : NEWLINE* statement (NEWLINE+ statement)* NEWLINE*


statement : KEYWORD:RETURN expr?

: KEYWORD:CONTINUE

: KEYWORD:BREAK

: expr


expr        : KEYWORD:VAR IDENTIFIER EQ expr

            : comp-expr ((KEYWORD:AND|KEYWORD:OR) comp-expr)*


comp-expr   : NOT comp-expr

            : arith-expr ((EE|LT|GT|LTE|GTE) arith-expr)*


arith-expr  : term ((PLUS|MINUS) term)*


term        : factor ((MUL|DIV) factor)*


factor      : (PLUS|MINUS) factor

            : power


power       : call (POW factor)*


call        : atom (LPAREN (expr (COMMA expr)*)? RPAREN)?


atom        : INT|FLOAT|STRING|IDENTIFIER

            : LPAREN expr RPAREN

            : list-expr

            : if-expr

            : for-expr

            : while-expr

            : func-def


list-expr   : LSQUARE (expr (COMMA expr)*)? RSQUARE


if-expr     : KEYWORD:IF expr KEYWORD:THEN

              (statement if-expr-b|if-expr-c?)

            | (NEWLINE statements KEYWORD:END|if-expr-b|if-expr-c)


if-expr-b   : KEYWORD:ELIF expr KEYWORD:THEN

              (statement if-expr-b|if-expr-c?)

            | (NEWLINE statements KEYWORD:END|if-expr-b|if-expr-c)


if-expr-c   : KEYWORD:ELSE

              statement

            | (NEWLINE statements KEYWORD:END)


for-expr    : KEYWORD:FOR IDENTIFIER EQ expr KEYWORD:TO expr 

              (KEYWORD:STEP expr)? KEYWORD:THEN

              statement

            | (NEWLINE statements KEYWORD:END)


while-expr  : KEYWORD:WHILE expr KEYWORD:THEN

              statement

            | (NEWLINE statements KEYWORD:END)


func-def    : KEYWORD:FUN IDENTIFIER?

              LPAREN (IDENTIFIER (COMMA IDENTIFIER)*)? RPAREN

              (ARROW expr)

            | (NEWLINE statements KEYWORD:END)