pslbnf { // The pul_char stuff. Basically, a normal char + escapes pul_char = /[^\\]/ => { push0 0 integer index } pul_char = /\\0/ => { // NULL 0 integer byte } pul_char = /\\a/ => { // Bell 7 integer byte } pul_char = /\\b/ => { // Backspace 8 integer byte } pul_char = /\\t/ => { // Horizontal tab 9 integer byte } pul_char = /\\n/ => { // Newline 10 integer byte } pul_char = /\\v/ => { // Vertical tab 11 integer byte } pul_char = /\\f/ => { // Form feed 12 integer byte } pul_char = /\\r/ => { // Carriage return 13 integer byte } pul_char = /\\e/ => { // Escape 27 integer byte } pul_char = /\\"/ => { // " 34 integer byte } pul_char = /\\\\/ => { // \ 92 integer byte } // pul_chars is any number of pul_char. . . pul_chars = pul_char pul_chars => { push0 0 integer index push1 1 integer index concat } pul_chars = pul_char => { 0index } pul_string = /"/ pul_chars /"/ => { push0 1 integer index {1 integer array this "opString" pul_var member pul_eval call} concat wrap {pul_funcwrap} concat } pul_string = /""/ => { "" {1 integer array this "opString" pul_var member pul_eval call} concat wrap {pul_funcwrap} concat } plof_literal = pul_string => { 0index } }; var opString = (x) { var ret = String : [], ret.__value = x, ret }; var String = Object : []; var print = (x) { psl { this "x" pul_var member pul_eval "__value" member pul_eval print null }; }; print("Hello, world!");