ℙ𝕖𝕑 πŸ™΄ β„•π• π•ž

home | documentation | examples | translators | download | blog | all blog posts

In America people drive on the right side of the road, in England they drive on the left. In India, it is optional. The Guru

β„•π• π•ž example scripts

This folder contains some example scripts in the β„•π• π•ž script language. Scripts have the file extension β€œ.pss”. These examples can be run using the interpreter and debugger (the β€œpep” interpreter) or by translating to rust | dart | lua | go | java | javascript | ruby | python | tcl | c and then (maybe compiling and) running.

/doc/doc.dir.index.html contains a list of scripts and documents in this folder.

Documentation for the β„•π• π•ž language and ℙ𝕖𝕑 virtual machine is in the /doc/ folder.

The scripts which begin with ro. are solutions (or attempted solutions) to problems on the www.rosettacode.org site. For example the script ro.balanced.brackets.pss solves the balanced_brackets problem .

examples can be run with the interpreter by typing
  pep -f eg/script.pss <inputfile>
  # or
  pep -f eg/script.pss -i <inputtext>
 

Examples can be translated into rust | dart | lua | go | java | javascript | ruby | python | tcl | c by running the appropriate translation script.

translate a β„•π• π•ž script into go, compile and run
   pep -f tr/translate.go.pss eg/script.pss > script.go
   go build script.go
   echo "<input>" | ./script
 

some example scripts

xml.parse.pss is an XML parser and error checker

nom.reference.syntax.pss is a syntax checker for the β„•π• π•ž language which provides precise error messages.

json.check.pss checks the syntax of a JSON text data file.

text.tohtml.pss transforms a β€œplain-text” (minimal mark-up) document into html

sed.tojava.pss transpiles a gnu SED script into the JAVA language (branch syntax with 't' etc is not supported because java has not [goto] statement )

maths.parse.pss parses and error checks arithmetic infix expressions.

maths.to.latex.pss transforms arithmetic, symbolic and logical expressions into printable LATEX formulas.

exp.tolisp.pss transforms an arithmetic infix expression into LISP This is a simpler and older version of the 2 scripts above

toybnf.pss translates simple BNF type grammar rules into β„•π• π•ž scripts. This is the basis for a bnf style parsing and compiling language

natural.language.pss implements an extremely limited natural language parser.

ideas for example scripts

break lines

A script which breaks lines at a ':' character and indents the remainder 2 spaces more than the original line

example
    guache: rough, crude, uneducated (from Bacata indigenous language)
    # becomes
    guache:
      rough, crude, uneducated (from Bacata indigenous language)
  

dictionary or glossary formatting

A script to format a plain-test dictionary into html and LATEX using a standard dictionary format.

todo

Make a β€œtable of contents” parser: that is, extract headings from some document and format and accumulate them in a tape cell (probably the first tape cell). Also parse and translate the rest of the document at the same time. This involves making sure that multiple β€œpop;” statements do not move the tape pointer back to the 1st tape cell. One solution is to use mark/go to realign the tape pointer

a β„•π• π•ž table of contents parser.


    begin { ++; mark "top"; }  
    read;
    # .... more code
    "token*token*" {
      clear; get; ++; get; --; put;
      clear; add "newtoken*"; push;
      go "top";  
    }
    "heading*heading*" {
      clear; get; add "\n"; ++; get; --; put;
      clear; add "newtoken*"; push;
      go "top";  
    }
    # I am not even sure that the go "top"; code is 
    # necessary
  

or invent a new drawing/animation/gaming language (getting ambitious which has a slightly more sensible syntax than that of the β€œlogo” language.

The start of a drawing language is implemented in /eg/drawbasic.pss This is currently implemented as a transpiler to PYTHON