PL - Prithak's Language was made by Prithak Adhikari and the concept was developed by Saugat Adhikari. This took us two months for completing and there still are many things that we want to implement! The first month was done with some planning and designing while the other month was used for the coding! The work has really paid off!
If you are interested in the code of the language, then here it is:
PL.QB
CLS PRINT "Welcome to PLanguage Compiler! Enter your file name to see the results." PRINT "Extra commands:" PRINT "/cls - clear the screen" PRINT "/edit - edit a file using notepad" PRINT "/exit - to exit this program" PRINT STRING$(80, "-") menu: INPUT ">>", file$ IF INSTR(file$, "/edit") THEN SHELL "notepad " + RIGHT$(file$, LEN(file$) - 6) ELSEIF file$ = "/exit" THEN END ELSEIF file$ = "/cls" THEN CLS GOTO menu END IF OPEN file$ FOR INPUT AS #1 OPEN "p1.bas" FOR OUTPUT AS #2 DO WHILE NOT EOF(1) LINE INPUT #1, l$ l$ = replace$(l$, "[", "(") l$ = replace$(l$, "]", ")") x = x + 1 IF INSTR(l$, "println") THEN PRINT #2, "PRINT " + RIGHT$(l$, LEN(l$) - 7) ELSEIF INSTR(l$, "input") THEN l$ = replace$(l$, "(", "") l$ = replace$(l$, ")", "") PRINT #2, l$ ELSEIF INSTR(l$, "}") THEN IF e$ = "for" THEN PRINT #2, "NEXT" ELSEIF e$ = "if" THEN PRINT #2, "END IF" ELSEIF e$ = "funct" THEN PRINT #2, "END FUNCTION" ELSEIF e$ = "while" THEN PRINT #2, "WEND" END IF e$ = "" ELSEIF INSTR(l$, "for") THEN l$ = replace$(l$, "{", "") PRINT #2, l$ e$ = "for" ELSEIF INSTR(l$, "elif") THEN l$ = replace$(l$, "{", "") PRINT #2, "ELSEIF " + RIGHT$(l$, LEN(l$) - 4) + " THEN" ELSEIF INSTR(l$, "else") THEN l$ = replace$(l$, "{", "") PRINT #2, l$ ELSEIF INSTR(l$, "if") THEN l$ = replace$(l$, "{", "") + " THEN" PRINT #2, l$ e$ = "if" ELSEIF INSTR(l$, "funct") THEN l$ = replace$(l$, "{", "") PRINT #2, "FUNCTION " + RIGHT$(l$, LEN(l$) - 5) e$ = "funct" ELSEIF INSTR(l$, "clear()") THEN PRINT #2, "CLS" ELSEIF INSTR(l$, "terminate()") THEN PRINT #2, "END" ELSEIF INSTR(l$, "wait") THEN PRINT #2, "SLEEP" ELSEIF INSTR(l$, "delay") THEN PRINT #2, "_DELAY " + RIGHT$(l$, LEN(l$) - 5) ELSEIF INSTR(l$, "terminate.instant()") THEN PRINT #2, "SYSTEM" ELSEIF INSTR(l$, "color") THEN l$ = replace$(l$, "(", "") l$ = replace$(l$, ")", "") PRINT #2, l$ ELSEIF INSTR(l$, "while") THEN l$ = replace$(l$, "{", "") PRINT #2, l$ e$ = "while" ELSEIF INSTR(l$, "createVector") THEN PRINT #2, "TYPE " + RIGHT$(l$, LEN(l$) - 12) PRINT #2, "X AS INTEGER" PRINT #2, "Y AS INTEGER" PRINT #2, "END TYPE" ELSEIF INSTR(l$, "setScreen") THEN PRINT #2, "SCREEN _NEWIMAGE" + RIGHT$(l$, LEN(l$) - 9) ELSEIF INSTR(l$, "declare") THEN l$ = replace$(l$, "[", "(") l$ = replace$(l$, "]", ")") PRINT #2, "DIM " + RIGHT$(l$, LEN(l$) - 7) ELSE IF INSTR(l$, "=") OR INSTR(l$, "}") OR LEN(l$) = 0 THEN l$ = replace$(l$, "[", "(") l$ = replace$(l$, "]", ")") PRINT #2, l$ ELSE PRINT "ERROR ON LINE"; x PRINT l$ PRINT "Please try revising the code..." END END IF END IF LOOP PRINT #2, "'$include: 'functions.txt'" CLOSE #2 CLOSE #1 OPEN "p1.bas" FOR INPUT AS #1 DO WHILE NOT EOF(1) LINE INPUT #1, l$ PRINT l$ LOOP CLOSE #1 PRINT "Compiling Your File..." SHELL _HIDE "qb64 -x p1.bas" SHELL "p1.exe" GOTO menu FUNCTION replace$ (a$, from$, to$) FOR i = 1 TO LEN(a$) c$ = MID$(a$, i, 1) IF c$ = from$ THEN replace$ = replace$ + to$ ELSE replace$ = replace$ + c$ END IF NEXT i END FUNCTION
PL.QB64
Coming Soon!