diff options
-rw-r--r-- | lib/coderay/scanners/php.rb | 322 | ||||
-rw-r--r-- | lib/coderay/styles/cycnus.rb | 9 | ||||
-rw-r--r-- | test/scanners/php/html+php_faulty.expected.raydebug | 2 | ||||
-rw-r--r-- | test/scanners/php/pleac.expected.raydebug | 3248 | ||||
-rw-r--r-- | test/scanners/php/test.expected.raydebug | 400 |
5 files changed, 2044 insertions, 1937 deletions
diff --git a/lib/coderay/scanners/php.rb b/lib/coderay/scanners/php.rb index 0912ea5..39e8eb4 100644 --- a/lib/coderay/scanners/php.rb +++ b/lib/coderay/scanners/php.rb @@ -27,55 +27,152 @@ module Scanners end module Words - ControlKeywords = %w! - if else elseif while do for switch case default declare foreach as - endif endwhile endfor endforeach endswitch enddeclare return break - continue exit die try catch throw - ! - OtherKeywords = %w! - function class extends implements instanceof parent self var const - private public protected static abstract final global new echo include - require include_once require_once eval print use unset isset empty - interface list array clone null true false - ! - - SpecialConstants = %w! __LINE__ __FILE__ __CLASS__ - __METHOD__ __FUNCTION__ - ! - IdentKinds = WordList.new(:ident). - add(ControlKeywords, :reserved). - add(OtherKeywords, :pre_type). - add(SpecialConstants, :pre_constant) + + # according to http://www.php.net/manual/en/reserved.keywords.php + KEYWORDS = %w[ + abstract and array as break case catch class clone + const continue declare default do else elseif + enddeclare endfor endforeach endif endswitch endwhile + extends final for foreach function global goto if implements + interface instanceof namespace new or + private protected public static switch throw try use var + while xor + cfunction old_function + null true false + ] + + LANGUAGE_CONSTRUCTS = %w[ + die echo empty exit eval include include_once isset list + require require_once return print unset + ] + + TYPES = %w[ int float ] + + # according to http://php.net/quickref.php on 2009-04-21; + # all functions with _ excluded (module functions) + BUILTIN_FUNCTIONS = %w[ + abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2 + atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec + bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite + calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog + compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex + decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each + ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract + fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner + fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv + fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate + getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid + getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext + gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate + gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell + gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate + implode include intval ip2long iptcembed iptcparse isset + jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp + juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log + log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort + natsort next ngettext nl2br nthmac octdec opendir openlog + ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow + prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile + readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir + serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget + snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat + strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen + strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn + strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam + textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack + unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap + ] + %w[ + assert_options base_convert base64_decode base64_encode + chunk_split class_exists class_implements class_parents + count_chars debug_backtrace debug_print_backtrace debug_zval_dump + error_get_last error_log error_reporting extension_loaded + file_exists file_get_contents file_put_contents load_file + func_get_arg func_get_args func_num_args function_exists + get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars + get_current_user get_declared_classes get_declared_interfaces get_defined_constants + get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table + get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime + get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type + gc_collect_cycles gc_disable gc_enable gc_enabled + halt_compiler headers_list headers_sent highlight_file highlight_string + html_entity_decode htmlspecialchars_decode + in_array include_once inclued_get_data + locale_get_default locale_set_default + number_format override_function parse_str parse_url + php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name + php_strip_whitespace php_uname + preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace + preg_replace_callback preg_split print_r + require_once register_shutdown_function register_tick_function + set_error_handler set_exception_handler set_file_buffer set_include_path + set_magic_quotes_runtime set_time_limit shell_exec + str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count + strip_tags substr_compare substr_count substr_replace + time_nanosleep time_sleep_until + token_get_all token_name trigger_error + unregister_tick_function use_soap_error_handler user_error + utf8_decode utf8_encode var_dump var_export + version_compare + zend_logo_guid zend_thread_id zend_version + ] + %w[ + array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc + array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip + array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey + array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad + array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift + array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect + array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk + array_walk_recursive + ] + %w[ + is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite + is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable + is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file + is_writable is_writeable + ] + + # TODO: more built-in PHP functions? + # TODO: more predefined constants? + + SPECIAL_CONSTANTS = %w[ + __LINE__ __DIR__ __FILE__ __LINE__ + __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__ + ] + + IdentKinds = CaseIgnoringWordList.new(:ident, true). + add(KEYWORDS, :reserved). + add(TYPES, :pre_type). + add(LANGUAGE_CONSTRUCTS, :predefined). + add(BUILTIN_FUNCTIONS, :predefined). + add(SPECIAL_CONSTANTS, :pre_constant) end + module RE def self.build_alternatives(array) Regexp.new(array.map { |s| Regexp.escape(s) }.join('|') , Regexp::IGNORECASE) end - - PHPStart = / - <script language="php"> | - <script language='php'> | - <\?php | - <\?(?!xml) | - <% + + PHP_START = / + <script\s+[^>]*?language\s*=\s*"php"[^>]*?> | + <script\s+[^>]*?language\s*=\s*'php'[^>]*?> | + <\?php\d? | + <\?(?!xml) /xi - - PHPEnd = %r! + + PHP_END = %r! </script> | - \?> | - %> + \?> !xi - + IChar = /[a-z0-9_\x80-\xFF]/i IStart = /[a-z_\x80-\xFF]/i Identifier = /#{IStart}#{IChar}*/ Variable = /\$#{Identifier}/ - + Typecasts = build_alternatives %w! float double real int integer bool boolean string array object null !.map{|s| "(#{s})"} - OneLineComment1 = %r!//.*?(?=#{PHPEnd}|$)! - OneLineComment2 = %r!#.*?(?=#{PHPEnd}|$)! + OneLineComment1 = %r!//.*?(?=#{PHP_END}|$)! + OneLineComment2 = %r!#.*?(?=#{PHP_END}|$)! OneLineComment = OneLineComment1 | OneLineComment2 HereDoc = /<<</ + Identifier @@ -97,51 +194,54 @@ module Scanners Operator = ComparisionOperator | IncDecOperator | LogicalOperator | ObjectOperator | AssignOperator | BinaryOperator | OtherOperator - - - S = /\s+/ - - Integer = /-?0x[0-9a-fA-F]/ | /-?\d+/ - Float = /-?(?:\d+\.\d*|\d*\.\d+)(?:e[+-]\d+)?/ - + + Integer = /0x[0-9a-fA-F]/ | /\d+/ + Float = /(?:\d+\.\d*|\d*\.\d+)(?:e[+-]\d+)?/ + end - + def scan_tokens tokens, options - states = [:php] - heredocdelim = nil - + states = [:initial] + if match?(RE::PHP_START) || # starts with <? + (match?(/\s*<(?i:\w|\?xml)/) && exist?(RE::PHP_START)) # starts with HTML tag and contains <? + # start with HTML + else + states << :php + end + # heredocdelim = nil + until eos? match = nil kind = nil case states.last - when :html - if scan RE::PHPStart - kind = :delimiter - states.pop + + when :initial # HTML + if scan RE::PHP_START + kind = :inline_delimiter + states << :php else - match = scan_until(/(?=#{RE::PHPStart})/o) || scan_until(/\z/) - @html_scanner.tokenize match if not match.empty? - kind = :space - match = '' + match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/) + @html_scanner.tokenize match unless match.empty? + next end when :php - if scan RE::PHPEnd - kind = :delimiter - states.push :html - - elsif scan RE::S + if scan RE::PHP_END + kind = :inline_delimiter + states.pop + + elsif scan(/\s+/) kind = :space - + elsif scan(/\/\*/) kind = :comment states.push :mlcomment - - elsif scan RE::OneLineComment + + elsif scan RE::OneLineComment kind = :comment - + elsif match = scan(RE::Identifier) kind = Words::IdentKinds[match] if kind == :ident && check(/:(?!:)/) #&& tokens[-2][0] == 'case' @@ -150,33 +250,37 @@ module Scanners elsif kind == :ident and match =~ /^[A-Z]/ kind = :constant end - - elsif scan RE::Integer - kind = :integer - + elsif scan RE::Float kind = :float - + + elsif scan RE::Integer + kind = :integer + elsif scan(/'/) + tokens << [:open, :string] kind = :delimiter states.push :sqstring - + elsif scan(/"/) + tokens << [:open, :string] kind = :delimiter states.push :dqstring - - elsif match = scan(RE::HereDoc) - heredocdelim = match[RE::Identifier] - kind = :delimiter - # states.push :heredocstring - + + # TODO: Heredocs + # elsif match = scan(RE::HereDoc) + # tokens << [:open, :string] + # heredocdelim = match[RE::Identifier] + # kind = :delimiter + # states.push :heredocstring + elsif scan RE::Variable kind = :local_variable - + elsif scan(/\{/) kind = :operator states.push :php - + elsif scan(/\}/) if states.length == 1 kind = :error @@ -184,56 +288,56 @@ module Scanners kind = :operator states.pop end - + elsif scan RE::Operator kind = :operator - + else getch kind = :error - + end - + when :mlcomment if scan(/(?:[^\n\r\f*]|\*(?!\/))+/) kind = :comment - + elsif scan(/\*\//) kind = :comment states.pop - + elsif scan(/[\r\n\f]+/) kind = :space end - + when :sqstring - if scan(/[^\r\n\f'\\]+/) - kind = :string - elsif match = scan(/\\\\|\\'/) - kind = :char + if scan(/[^'\\]+/) + kind = :content + elsif scan(/\\./m) + kind = :content elsif scan(/\\/) - kind = :string - elsif scan(/[\r\n\f ]+/) - kind = :space + kind = :error elsif scan(/'/) - kind = :delimiter + tokens << [matched, :delimiter] + tokens << [:close, :string] states.pop + next end - + when :dqstring -#todo: $foo[bar] kind of stuff - if scan(/[^\r\n\f"${\\]+/) - kind = :string - elsif scan(/\\x[a-fA-F]{2}/) + # TODO: $foo[bar] kind of stuff + if scan(/[^"${\\]+/) + kind = :content + elsif scan(/\\x[0-9a-fA-F]{2}/) kind = :char elsif scan(/\\\d{3}/) kind = :char elsif scan(/\\["\\abcfnrtyv]/) kind = :char + elsif scan(/\\./m) + kind = :content elsif scan(/\\/) - kind = :string - elsif scan(/[\r\n\f]+/) - kind = :space + kind = :error elsif match = scan(/#{RE::Variable}/o) kind = :local_variable if check(/\[#{RE::Identifier}\]/o) @@ -246,7 +350,7 @@ module Scanners end elsif scan(/\{/) if check(/\$/) - kind = :operator + kind = :operator states.push :php else kind = :string @@ -255,30 +359,32 @@ module Scanners elsif scan(/\$\{#{RE::Identifier}\}/o) kind = :local_variable elsif scan(/\$/) - kind = :string + kind = :content elsif scan(/"/) - kind = :delimiter + tokens << [matched, :delimiter] + tokens << [:close, :string] states.pop + next end else raise_inspect 'Unknown state!', tokens, states end - + match ||= matched if $DEBUG and not kind raise_inspect 'Error token %p in line %d' % [[match, kind], line], tokens, states end raise_inspect 'Empty token', tokens, states unless match - + tokens << [match, kind] - + end + tokens - end - + end - + end end diff --git a/lib/coderay/styles/cycnus.rb b/lib/coderay/styles/cycnus.rb index d274545..f1069b1 100644 --- a/lib/coderay/styles/cycnus.rb +++ b/lib/coderay/styles/cycnus.rb @@ -78,10 +78,11 @@ ol.CodeRay li { white-space: pre } .i { color:#00D; font-weight:bold } .ic { color:#B44; font-weight:bold } -.il { background: #eee; color: black } -.il .il { background: #ddd } -.il .il .il { background: #ccc } -.il .idl { font-weight: bold; color: #777 } +.il { background: #ddd; color: black } +.il .il { background: #ccc } +.il .il .il { background: #bbb } +.il .idl { background: #ddd; font-weight: bold; color: #666 } +.idl { background-color: #bbb; font-weight: bold; color: #666; } .im { color:#f00; } .in { color:#B2B; font-weight:bold } diff --git a/test/scanners/php/html+php_faulty.expected.raydebug b/test/scanners/php/html+php_faulty.expected.raydebug index 11a0372..8bca346 100644 --- a/test/scanners/php/html+php_faulty.expected.raydebug +++ b/test/scanners/php/html+php_faulty.expected.raydebug @@ -1 +1 @@ -operator(<)operator(?)ident(php) +inline_delimiter(<?php) diff --git a/test/scanners/php/pleac.expected.raydebug b/test/scanners/php/pleac.expected.raydebug index 3bec15e..48f1a75 100644 --- a/test/scanners/php/pleac.expected.raydebug +++ b/test/scanners/php/pleac.expected.raydebug @@ -11,19 +11,19 @@ comment(# @@SKIP@@ http://php.net/) comment(# @@PLEAC@@_1.0) comment(#-----------------------------) -local_variable($string) operator(=) delimiter(')string(\\)string(n)delimiter(')operator(;) comment(# two characters, \\ and an n) -local_variable($string) operator(=) delimiter(')string(Jon )char(\\')string(Maddog)char(\\')string( Orwant)delimiter(')operator(;) comment(# literal single quotes) -local_variable($string) operator(=) delimiter(')string(Jon "Maddog" Orwant)delimiter(')operator(;) comment(# literal double quotes) +local_variable($string) operator(=) string<delimiter(')content(\\n)delimiter(')>operator(;) comment(# two characters, \\ and an n) +local_variable($string) operator(=) string<delimiter(')content(Jon )content(\\')content(Maddog)content(\\')content( Orwant)delimiter(')>operator(;) comment(# literal single quotes) +local_variable($string) operator(=) string<delimiter(')content(Jon "Maddog" Orwant)delimiter(')>operator(;) comment(# literal double quotes) comment(#-----------------------------) -local_variable($string) operator(=) delimiter(")char(\\n)delimiter(")operator(;) comment(# a "newline" character) -local_variable($string) operator(=) delimiter(")string(Jon )char(\\")string(Maddog)char(\\")string( Orwant)delimiter(")operator(;) comment(# literal double quotes) -local_variable($string) operator(=) delimiter(")string(Jon 'Maddog' Orwant)delimiter(")operator(;) comment(# literal single quotes) +local_variable($string) operator(=) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(# a "newline" character) +local_variable($string) operator(=) string<delimiter(")content(Jon )char(\\")content(Maddog)char(\\")content( Orwant)delimiter(")>operator(;) comment(# literal double quotes) +local_variable($string) operator(=) string<delimiter(")content(Jon 'Maddog' Orwant)delimiter(")>operator(;) comment(# literal single quotes) comment(#-----------------------------) local_variable($a) operator(=) -delimiter(")string(This is a multiline) -string(here document)delimiter(")operator(;) +string<delimiter(")content(This is a multiline +here document)delimiter(")>operator(;) -local_variable($a) operator(=) delimiter(<<<EOF) +local_variable($a) operator(=) operator(<<)operator(<)constant(EOF) constant(This) ident(is) ident(a) ident(multiline) ident(here) ident(document) ident(terminated) ident(by) constant(EOF) ident(on) ident(a) ident(line) ident(by) ident(itself) constant(EOF)operator(;) @@ -31,88 +31,88 @@ comment(#-----------------------------) comment(# @@PLEAC@@_1.1) comment(#-----------------------------) -local_variable($value) operator(=) ident(substr)operator(()local_variable($string)operator(,) local_variable($offset)operator(,) local_variable($count)operator(\))operator(;) -local_variable($value) operator(=) ident(substr)operator(()local_variable($string)operator(,) local_variable($offset)operator(\))operator(;) +local_variable($value) operator(=) predefined(substr)operator(()local_variable($string)operator(,) local_variable($offset)operator(,) local_variable($count)operator(\))operator(;) +local_variable($value) operator(=) predefined(substr)operator(()local_variable($string)operator(,) local_variable($offset)operator(\))operator(;) -local_variable($string) operator(=) ident(substr_replace)operator(()local_variable($string)operator(,) local_variable($newstring)operator(,) local_variable($offset)operator(,) local_variable($count)operator(\))operator(;) -local_variable($string) operator(=) ident(substr_replace)operator(()local_variable($string)operator(,) local_variable($newtail)operator(,) local_variable($offset)operator(\))operator(;) +local_variable($string) operator(=) predefined(substr_replace)operator(()local_variable($string)operator(,) local_variable($newstring)operator(,) local_variable($offset)operator(,) local_variable($count)operator(\))operator(;) +local_variable($string) operator(=) predefined(substr_replace)operator(()local_variable($string)operator(,) local_variable($newtail)operator(,) local_variable($offset)operator(\))operator(;) comment(#-----------------------------) comment(# get a 5-byte string, skip 3, then grab 2 8-byte strings, then the rest) -pre_type(list)operator(()local_variable($leading)operator(,) local_variable($s1)operator(,) local_variable($s2)operator(,) local_variable($trailing)operator(\)) operator(=) - ident(array_values)operator(()ident(unpack)operator(()delimiter(")string(A5a/x3/A8b/A8c/A*d)delimiter(")operator(,) local_variable($data)operator(\))operator(;) +predefined(list)operator(()local_variable($leading)operator(,) local_variable($s1)operator(,) local_variable($s2)operator(,) local_variable($trailing)operator(\)) operator(=) + predefined(array_values)operator(()predefined(unpack)operator(()string<delimiter(")content(A5a/x3/A8b/A8c/A*d)delimiter(")>operator(,) local_variable($data)operator(\))operator(;) comment(# split at five byte boundaries) -ident(preg_match_all) operator(()delimiter(")string(/.)string({)string(5}/)delimiter(")operator(,) local_variable($data)operator(,) local_variable($f)operator(,) constant(PREG_PATTERN_ORDER)operator(\))operator(;) +predefined(preg_match_all) operator(()string<delimiter(")content(/.)string({)content(5}/)delimiter(")>operator(,) local_variable($data)operator(,) local_variable($f)operator(,) constant(PREG_PATTERN_ORDER)operator(\))operator(;) local_variable($fivers) operator(=) local_variable($f)operator([)integer(0)operator(])operator(;) comment(# chop string into individual characters) local_variable($chars) operator(=) local_variable($string)operator(;) comment(#-----------------------------) -local_variable($string) operator(=) delimiter(")string(This is what you have)delimiter(")operator(;) +local_variable($string) operator(=) string<delimiter(")content(This is what you have)delimiter(")>operator(;) comment(# +012345678901234567890 Indexing forwards (left to right\)) comment(# 109876543210987654321- Indexing backwards (right to left\)) comment(# note that 0 means 10 or 20, etc. above) -local_variable($first) operator(=) ident(substr)operator(()local_variable($string)operator(,) integer(0)operator(,) integer(1)operator(\))operator(;) comment(# "T") -local_variable($start) operator(=) ident(substr)operator(()local_variable($string)operator(,) integer(5)operator(,) integer(2)operator(\))operator(;) comment(# "is") -local_variable($rest) operator(=) ident(substr)operator(()local_variable($string)operator(,) integer(13)operator(\))operator(;) comment(# "you have") -local_variable($last) operator(=) ident(substr)operator(()local_variable($string)operator(,) integer(-1)operator(\))operator(;) comment(# "e") -local_variable($end) operator(=) ident(substr)operator(()local_variable($string)operator(,) integer(-4)operator(\))operator(;) comment(# "have") -local_variable($piece) operator(=) ident(substr)operator(()local_variable($string)operator(,) integer(-8)operator(,) integer(3)operator(\))operator(;) comment(# "you") +local_variable($first) operator(=) predefined(substr)operator(()local_variable($string)operator(,) integer(0)operator(,) integer(1)operator(\))operator(;) comment(# "T") +local_variable($start) operator(=) predefined(substr)operator(()local_variable($string)operator(,) integer(5)operator(,) integer(2)operator(\))operator(;) comment(# "is") +local_variable($rest) operator(=) predefined(substr)operator(()local_variable($string)operator(,) integer(13)operator(\))operator(;) comment(# "you have") +local_variable($last) operator(=) predefined(substr)operator(()local_variable($string)operator(,) operator(-)integer(1)operator(\))operator(;) comment(# "e") +local_variable($end) operator(=) predefined(substr)operator(()local_variable($string)operator(,) operator(-)integer(4)operator(\))operator(;) comment(# "have") +local_variable($piece) operator(=) predefined(substr)operator(()local_variable($string)operator(,) operator(-)integer(8)operator(,) integer(3)operator(\))operator(;) comment(# "you") comment(#-----------------------------) -local_variable($string) operator(=) delimiter(")string(This is what you have)delimiter(")operator(;) -pre_type(print) local_variable($string)operator(;) +local_variable($string) operator(=) string<delimiter(")content(This is what you have)delimiter(")>operator(;) +predefined(print) local_variable($string)operator(;) comment(#This is what you have) -local_variable($string) operator(=) ident(substr_replace)operator(()local_variable($string)operator(,) delimiter(")string(wasn't)delimiter(")operator(,) integer(5)operator(,) integer(2)operator(\))operator(;) comment(# change "is" to "wasn't") +local_variable($string) operator(=) predefined(substr_replace)operator(()local_variable($string)operator(,) string<delimiter(")content(wasn't)delimiter(")>operator(,) integer(5)operator(,) integer(2)operator(\))operator(;) comment(# change "is" to "wasn't") comment(#This wasn't what you have) -local_variable($string) operator(=) ident(substr_replace)operator(()local_variable($string)operator(,) delimiter(")string(ondrous)delimiter(")operator(,) integer(-12)operator(\))operator(;) comment(# "This wasn't wondrous") +local_variable($string) operator(=) predefined(substr_replace)operator(()local_variable($string)operator(,) string<delimiter(")content(ondrous)delimiter(")>operator(,) operator(-)integer(12)operator(\))operator(;) comment(# "This wasn't wondrous") comment(#This wasn't wondrous) -local_variable($string) operator(=) ident(substr_replace)operator(()local_variable($string)operator(,) delimiter(")delimiter(")operator(,) integer(0)operator(,) integer(1)operator(\))operator(;) comment(# delete first character) +local_variable($string) operator(=) predefined(substr_replace)operator(()local_variable($string)operator(,) string<delimiter(")delimiter(")>operator(,) integer(0)operator(,) integer(1)operator(\))operator(;) comment(# delete first character) comment(#his wasn't wondrous) -local_variable($string) operator(=) ident(substr_replace)operator(()local_variable($string)operator(,) delimiter(")delimiter(")operator(,) integer(-10)operator(\))operator(;) comment(# delete last 10 characters) +local_variable($string) operator(=) predefined(substr_replace)operator(()local_variable($string)operator(,) string<delimiter(")delimiter(")>operator(,) operator(-)integer(10)operator(\))operator(;) comment(# delete last 10 characters) comment(#his wasn') comment(#-----------------------------) -reserved(if) operator(()ident(preg_match)operator(()delimiter(")string(/pattern/)delimiter(")operator(,) ident(substr)operator(()local_variable($string)operator(,) integer(-10)operator(\))operator(\)) operator({) - pre_type(print) delimiter(")string(Pattern matches in last 10 characters)char(\\n)delimiter(")operator(;) +reserved(if) operator(()predefined(preg_match)operator(()string<delimiter(")content(/pattern/)delimiter(")>operator(,) predefined(substr)operator(()local_variable($string)operator(,) operator(-)integer(10)operator(\))operator(\)) operator({) + predefined(print) string<delimiter(")content(Pattern matches in last 10 characters)char(\\n)delimiter(")>operator(;) operator(}) comment(# substitute "at" for "is", restricted to first five characters) -local_variable($string)operator(=)operator(()ident(substr_replace)operator(()ident(preg_replace)operator(()delimiter(")string(/is/)delimiter(")operator(,) delimiter(")string(at)delimiter(")operator(,) ident(substr)operator(()local_variable($string)operator(,)integer(0)operator(,)integer(5)operator(\))operator(\))operator(,)integer(0)operator(,)integer(5)operator(\))operator(;) +local_variable($string)operator(=)operator(()predefined(substr_replace)operator(()predefined(preg_replace)operator(()string<delimiter(")content(/is/)delimiter(")>operator(,) string<delimiter(")content(at)delimiter(")>operator(,) predefined(substr)operator(()local_variable($string)operator(,)integer(0)operator(,)integer(5)operator(\))operator(\))operator(,)integer(0)operator(,)integer(5)operator(\))operator(;) comment(#-----------------------------) comment(# exchange the first and last letters in a string) -local_variable($a) operator(=) delimiter(")string(make a hat)delimiter(")operator(;) -pre_type(list)operator(()local_variable($a)operator([)integer(0)operator(])operator(,) local_variable($a)operator([)ident(strlen)operator(()local_variable($a)operator(\))integer(-1)operator(])operator(\)) operator(=) constant(Array)operator(()ident(substr)operator(()local_variable($a)operator(,)integer(-1)operator(\))operator(,) ident(substr)operator(()local_variable($a)operator(,)integer(0)operator(,)integer(1)operator(\))operator(\))operator(;) -pre_type(print) local_variable($a)operator(;) +local_variable($a) operator(=) string<delimiter(")content(make a hat)delimiter(")>operator(;) +predefined(list)operator(()local_variable($a)operator([)integer(0)operator(])operator(,) local_variable($a)operator([)predefined(strlen)operator(()local_variable($a)operator(\))operator(-)integer(1)operator(])operator(\)) operator(=) predefined(Array)operator(()predefined(substr)operator(()local_variable($a)operator(,)operator(-)integer(1)operator(\))operator(,) predefined(substr)operator(()local_variable($a)operator(,)integer(0)operator(,)integer(1)operator(\))operator(\))operator(;) +predefined(print) local_variable($a)operator(;) comment(#-----------------------------) comment(# extract column with unpack) -local_variable($a) operator(=) delimiter(")string(To be or not to be)delimiter(")operator(;) -local_variable($b) operator(=) ident(unpack)operator(()delimiter(")string(x6/A6a)delimiter(")operator(,) local_variable($a)operator(\))operator(;) comment(# skip 6, grab 6) -pre_type(print) local_variable($b)operator([)delimiter(')string(a)delimiter(')operator(])operator(;) +local_variable($a) operator(=) string<delimiter(")content(To be or not to be)delimiter(")>operator(;) +local_variable($b) operator(=) predefined(unpack)operator(()string<delimiter(")content(x6/A6a)delimiter(")>operator(,) local_variable($a)operator(\))operator(;) comment(# skip 6, grab 6) +predefined(print) local_variable($b)operator([)string<delimiter(')content(a)delimiter(')>operator(])operator(;) -local_variable($b) operator(=) ident(unpack)operator(()delimiter(")string(x6/A2b/X5/A2c)delimiter(")operator(,) local_variable($a)operator(\))operator(;) comment(# forward 6, grab 2; backward 5, grab 2) -pre_type(print) local_variable($b)operator([)delimiter(')string(b)delimiter(')operator(])operator(.)delimiter(")char(\\n)delimiter(")operator(.)local_variable($b)operator([)delimiter(')string(c)delimiter(')operator(])operator(.)delimiter(")char(\\n)delimiter(")operator(;) +local_variable($b) operator(=) predefined(unpack)operator(()string<delimiter(")content(x6/A2b/X5/A2c)delimiter(")>operator(,) local_variable($a)operator(\))operator(;) comment(# forward 6, grab 2; backward 5, grab 2) +predefined(print) local_variable($b)operator([)string<delimiter(')content(b)delimiter(')>operator(])operator(.)string<delimiter(")char(\\n)delimiter(")>operator(.)local_variable($b)operator([)string<delimiter(')content(c)delimiter(')>operator(])operator(.)string<delimiter(")char(\\n)delimiter(")>operator(;) comment(#-----------------------------) -pre_type(function) ident(cut2fmt)operator(()operator(\)) operator({) - local_variable($positions) operator(=) ident(func_get_args)operator(()operator(\))operator(;) - local_variable($template) operator(=) delimiter(')delimiter(')operator(;) +reserved(function) ident(cut2fmt)operator(()operator(\)) operator({) + local_variable($positions) operator(=) predefined(func_get_args)operator(()operator(\))operator(;) + local_variable($template) operator(=) string<delimiter(')delimiter(')>operator(;) local_variable($lastpos) operator(=) integer(1)operator(;) reserved(foreach)operator(()local_variable($positions) reserved(as) local_variable($place)operator(\)) operator({) - local_variable($template) operator(.)operator(=) delimiter(")string(A)delimiter(") operator(.) operator(()local_variable($place) operator(-) local_variable($lastpos)operator(\)) operator(.) delimiter(")string( )delimiter(")operator(;) + local_variable($template) operator(.)operator(=) string<delimiter(")content(A)delimiter(")> operator(.) operator(()local_variable($place) operator(-) local_variable($lastpos)operator(\)) operator(.) string<delimiter(")content( )delimiter(")>operator(;) local_variable($lastpos) operator(=) local_variable($place)operator(;) operator(}) - local_variable($template) operator(.)operator(=) delimiter(")string(A*)delimiter(")operator(;) - reserved(return) local_variable($template)operator(;) + local_variable($template) operator(.)operator(=) string<delimiter(")content(A*)delimiter(")>operator(;) + predefined(return) local_variable($template)operator(;) operator(}) local_variable($fmt) operator(=) ident(cut2fmt)operator(()integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)operator(\))operator(;) -pre_type(print) delimiter(")local_variable($fmt)char(\\n)delimiter(")operator(;) +predefined(print) string<delimiter(")local_variable($fmt)char(\\n)delimiter(")>operator(;) comment(#A7 A6 A6 A6 A4 A*) comment(#-----------------------------) @@ -125,178 +125,178 @@ comment(# set $x to $y unless $x is already true) local_variable($x) operator(|)operator(|) local_variable($x)operator(=)local_variable($y)operator(;) comment(#-----------------------------) comment(# use $b if $b is defined, else $c) -local_variable($a) operator(=) ident(defined)operator(()local_variable($b)operator(\)) operator(?) local_variable($b) operator(:) local_variable($c)operator(;) +local_variable($a) operator(=) predefined(defined)operator(()local_variable($b)operator(\)) operator(?) local_variable($b) operator(:) local_variable($c)operator(;) comment(#-----------------------------) -local_variable($foo) operator(=) local_variable($bar) operator(|)operator(|) local_variable($foo) operator(=) delimiter(")string(DEFAULT VALUE)delimiter(")operator(;) +local_variable($foo) operator(=) local_variable($bar) operator(|)operator(|) local_variable($foo) operator(=) string<delimiter(")content(DEFAULT VALUE)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($dir) operator(=) ident(array_shift)operator(()local_variable($_SERVER)operator([)delimiter(')string(argv)delimiter(')operator(])operator(\)) operator(|)operator(|) local_variable($dir) operator(=) delimiter(")string(/tmp)delimiter(")operator(;) +local_variable($dir) operator(=) predefined(array_shift)operator(()local_variable($_SERVER)operator([)string<delimiter(')content(argv)delimiter(')>operator(])operator(\)) operator(|)operator(|) local_variable($dir) operator(=) string<delimiter(")content(/tmp)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($dir) operator(=) local_variable($_SERVER)operator([)delimiter(')string(argv)delimiter(')operator(])operator([)integer(0)operator(]) operator(|)operator(|) local_variable($dir) operator(=) delimiter(")string(/tmp)delimiter(")operator(;) +local_variable($dir) operator(=) local_variable($_SERVER)operator([)string<delimiter(')content(argv)delimiter(')>operator(])operator([)integer(0)operator(]) operator(|)operator(|) local_variable($dir) operator(=) string<delimiter(")content(/tmp)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($dir) operator(=) ident(defined)operator(()local_variable($_SERVER)operator([)delimiter(')string(argv)delimiter(')operator(])operator([)integer(0)operator(])operator(\)) operator(?) ident(array_shift)operator(()local_variable($_SERVER)operator([)delimiter(')string(argv)delimiter(')operator(])operator(\)) operator(:) delimiter(")string(/tmp)delimiter(")operator(;) +local_variable($dir) operator(=) predefined(defined)operator(()local_variable($_SERVER)operator([)string<delimiter(')content(argv)delimiter(')>operator(])operator([)integer(0)operator(])operator(\)) operator(?) predefined(array_shift)operator(()local_variable($_SERVER)operator([)string<delimiter(')content(argv)delimiter(')>operator(])operator(\)) operator(:) string<delimiter(")content(/tmp)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($dir) operator(=) ident(count)operator(()local_variable($_SERVER)operator([)delimiter(')string(argv)delimiter(')operator(])operator(\)) operator(?) local_variable($_SERVER)operator([)delimiter(')string(argv)delimiter(')operator(])operator([)integer(0)operator(]) operator(:) delimiter(")string(/tmp)delimiter(")operator(;) +local_variable($dir) operator(=) predefined(count)operator(()local_variable($_SERVER)operator([)string<delimiter(')content(argv)delimiter(')>operator(])operator(\)) operator(?) local_variable($_SERVER)operator([)string<delimiter(')content(argv)delimiter(')>operator(])operator([)integer(0)operator(]) operator(:) string<delimiter(")content(/tmp)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($count)operator([)local_variable($shell)operator(?)local_variable($shell)operator(:)delimiter(")string(/bin/sh)delimiter(")operator(])operator(++)operator(;) +local_variable($count)operator([)local_variable($shell)operator(?)local_variable($shell)operator(:)string<delimiter(")content(/bin/sh)delimiter(")>operator(])operator(++)operator(;) comment(#-----------------------------) comment(# find the user name on Unix systems) -local_variable($user) operator(=) local_variable($_ENV)operator([)delimiter(')string(USER)delimiter(')operator(]) - operator(|)operator(|) local_variable($user) operator(=) local_variable($_ENV)operator([)delimiter(')string(LOGNAME)delimiter(')operator(]) +local_variable($user) operator(=) local_variable($_ENV)operator([)string<delimiter(')content(USER)delimiter(')>operator(]) + operator(|)operator(|) local_variable($user) operator(=) local_variable($_ENV)operator([)string<delimiter(')content(LOGNAME)delimiter(')>operator(]) operator(|)operator(|) local_variable($user) operator(=) ident(posix_getlogin)operator(()operator(\)) operator(|)operator(|) local_variable($user) operator(=) ident(posix_getpwuid)operator(()ident(posix_getuid)operator(()operator(\))operator(\))operator([)integer(0)operator(]) - operator(|)operator(|) local_variable($user) operator(=) delimiter(")string(Unknown uid number )string($)string(<)delimiter(")operator(;) + operator(|)operator(|) local_variable($user) operator(=) string<delimiter(")content(Unknown uid number )content($)content(<)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($starting_point) operator(|)operator(|) local_variable($starting_point) operator(=) delimiter(")string(Greenwich)delimiter(")operator(;) +local_variable($starting_point) operator(|)operator(|) local_variable($starting_point) operator(=) string<delimiter(")content(Greenwich)delimiter(")>operator(;) comment(#-----------------------------) -ident(count)operator(()local_variable($a)operator(\)) operator(|)operator(|) local_variable($a) operator(=) local_variable($b)operator(;) comment(# copy only if empty) -local_variable($a) operator(=) ident(count)operator(()local_variable($b)operator(\)) operator(?) local_variable($b) operator(:) local_variable($c)operator(;) comment(# assign @b if nonempty, else @c) +predefined(count)operator(()local_variable($a)operator(\)) operator(|)operator(|) local_variable($a) operator(=) local_variable($b)operator(;) comment(# copy only if empty) +local_variable($a) operator(=) predefined(count)operator(()local_variable($b)operator(\)) operator(?) local_variable($b) operator(:) local_variable($c)operator(;) comment(# assign @b if nonempty, else @c) comment(#-----------------------------) comment(# @@PLEAC@@_1.3) comment(#-----------------------------) -pre_type(list)operator(()local_variable($VAR1)operator(,) local_variable($VAR2)operator(\)) operator(=) pre_type(array)operator(()local_variable($VAR2)operator(,) local_variable($VAR1)operator(\))operator(;) +predefined(list)operator(()local_variable($VAR1)operator(,) local_variable($VAR2)operator(\)) operator(=) predefined(array)operator(()local_variable($VAR2)operator(,) local_variable($VAR1)operator(\))operator(;) comment(#-----------------------------) local_variable($temp) operator(=) local_variable($a)operator(;) local_variable($a) operator(=) local_variable($b)operator(;) local_variable($b) operator(=) local_variable($temp)operator(;) comment(#-----------------------------) -local_variable($a) operator(=) delimiter(")string(alpha)delimiter(")operator(;) -local_variable($b) operator(=) delimiter(")string(omega)delimiter(")operator(;) -pre_type(list)operator(()local_variable($a)operator(,) local_variable($b)operator(\)) operator(=) pre_type(array)operator(()local_variable($b)operator(,) local_variable($a)operator(\))operator(;) comment(# the first shall be last -- and versa vice) +local_variable($a) operator(=) string<delimiter(")content(alpha)delimiter(")>operator(;) +local_variable($b) operator(=) string<delimiter(")content(omega)delimiter(")>operator(;) +predefined(list)operator(()local_variable($a)operator(,) local_variable($b)operator(\)) operator(=) predefined(array)operator(()local_variable($b)operator(,) local_variable($a)operator(\))operator(;) comment(# the first shall be last -- and versa vice) comment(#-----------------------------) -pre_type(list)operator(()local_variable($alpha)operator(,) local_variable($beta)operator(,) local_variable($production)operator(\)) operator(=) constant(Array)operator(()delimiter(")string(January)delimiter(")operator(,)delimiter(")string(March)delimiter(")operator(,)delimiter(")string(August)delimiter(")operator(\))operator(;) +predefined(list)operator(()local_variable($alpha)operator(,) local_variable($beta)operator(,) local_variable($production)operator(\)) operator(=) predefined(Array)operator(()string<delimiter(")content(January)delimiter(")>operator(,)string<delimiter(")content(March)delimiter(")>operator(,)string<delimiter(")content(August)delimiter(")>operator(\))operator(;) comment(# move beta to alpha,) comment(# move production to beta,) comment(# move alpha to production) -pre_type(list)operator(()local_variable($alpha)operator(,) local_variable($beta)operator(,) local_variable($production)operator(\)) operator(=) pre_type(array)operator(()local_variable($beta)operator(,) local_variable($production)operator(,) local_variable($alpha)operator(\))operator(;) +predefined(list)operator(()local_variable($alpha)operator(,) local_variable($beta)operator(,) local_variable($production)operator(\)) operator(=) predefined(array)operator(()local_variable($beta)operator(,) local_variable($production)operator(,) local_variable($alpha)operator(\))operator(;) comment(#-----------------------------) comment(# @@PLEAC@@_1.4) comment(#-----------------------------) -local_variable($num) operator(=) ident(ord)operator(()local_variable($char)operator(\))operator(;) -local_variable($char) operator(=) ident(chr)operator(()local_variable($num)operator(\))operator(;) +local_variable($num) operator(=) predefined(ord)operator(()local_variable($char)operator(\))operator(;) +local_variable($char) operator(=) predefined(chr)operator(()local_variable($num)operator(\))operator(;) comment(#-----------------------------) -local_variable($char) operator(=) ident(sprintf)operator(()delimiter(")string(%c)delimiter(")operator(,) local_variable($num)operator(\))operator(;) comment(# slower than chr($num\)) -ident(printf)operator(()delimiter(")string(Number %d is character %c)char(\\n)delimiter(")operator(,) local_variable($num)operator(,) local_variable($num)operator(\))operator(;) +local_variable($char) operator(=) predefined(sprintf)operator(()string<delimiter(")content(%c)delimiter(")>operator(,) local_variable($num)operator(\))operator(;) comment(# slower than chr($num\)) +predefined(printf)operator(()string<delimiter(")content(Number %d is character %c)char(\\n)delimiter(")>operator(,) local_variable($num)operator(,) local_variable($num)operator(\))operator(;) comment(#-----------------------------) -local_variable($ASCII) operator(=) ident(unpack)operator(()delimiter(")string(C*)delimiter(")operator(,) local_variable($string)operator(\))operator(;) -pre_type(eval)operator(()delimiter(')string($STRING = pack("C*", )delimiter(')operator(.)ident(implode)operator(()delimiter(')string(,)delimiter(')operator(,)local_variable($ASCII)operator(\))operator(.)delimiter(')string(\);)delimiter(')operator(\))operator(;) +local_variable($ASCII) operator(=) predefined(unpack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) local_variable($string)operator(\))operator(;) +predefined(eval)operator(()string<delimiter(')content($STRING = pack("C*", )delimiter(')>operator(.)predefined(implode)operator(()string<delimiter(')content(,)delimiter(')>operator(,)local_variable($ASCII)operator(\))operator(.)string<delimiter(')content(\);)delimiter(')>operator(\))operator(;) comment(#-----------------------------) -local_variable($ascii_value) operator(=) ident(ord)operator(()delimiter(")string(e)delimiter(")operator(\))operator(;) comment(# now 101) -local_variable($character) operator(=) ident(chr)operator(()integer(101)operator(\))operator(;) comment(# now "e") +local_variable($ascii_value) operator(=) predefined(ord)operator(()string<delimiter(")content(e)delimiter(")>operator(\))operator(;) comment(# now 101) +local_variable($character) operator(=) predefined(chr)operator(()integer(101)operator(\))operator(;) comment(# now "e") comment(#-----------------------------) -ident(printf)operator(()delimiter(")string(Number %d is character %c)char(\\n)delimiter(")operator(,) integer(101)operator(,) integer(101)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Number %d is character %c)char(\\n)delimiter(")>operator(,) integer(101)operator(,) integer(101)operator(\))operator(;) comment(#-----------------------------) -local_variable($ascii_character_numbers) operator(=) ident(unpack)operator(()delimiter(")string(C*)delimiter(")operator(,) delimiter(")string(sample)delimiter(")operator(\))operator(;) -pre_type(print) ident(explode)operator(()delimiter(")string( )delimiter(")operator(,)local_variable($ascii_character_numbers)operator(\))operator(.)delimiter(")char(\\n)delimiter(")operator(;) +local_variable($ascii_character_numbers) operator(=) predefined(unpack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) string<delimiter(")content(sample)delimiter(")>operator(\))operator(;) +predefined(print) predefined(explode)operator(()string<delimiter(")content( )delimiter(")>operator(,)local_variable($ascii_character_numbers)operator(\))operator(.)string<delimiter(")char(\\n)delimiter(")>operator(;) -pre_type(eval)operator(()delimiter(')string($word = pack("C*", )delimiter(')operator(.)ident(implode)operator(()delimiter(')string(,)delimiter(')operator(,)local_variable($ascii_character_numbers)operator(\))operator(.)delimiter(')string(\);)delimiter(')operator(\))operator(;) -local_variable($word) operator(=) ident(pack)operator(()delimiter(")string(C*)delimiter(")operator(,) integer(115)operator(,) integer(97)operator(,) integer(109)operator(,) integer(112)operator(,) integer(108)operator(,) integer(101)operator(\))operator(;) comment(# same) -pre_type(print) delimiter(")local_variable($word)char(\\n)delimiter(")operator(;) +predefined(eval)operator(()string<delimiter(')content($word = pack("C*", )delimiter(')>operator(.)predefined(implode)operator(()string<delimiter(')content(,)delimiter(')>operator(,)local_variable($ascii_character_numbers)operator(\))operator(.)string<delimiter(')content(\);)delimiter(')>operator(\))operator(;) +local_variable($word) operator(=) predefined(pack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) integer(115)operator(,) integer(97)operator(,) integer(109)operator(,) integer(112)operator(,) integer(108)operator(,) integer(101)operator(\))operator(;) comment(# same) +predefined(print) string<delimiter(")local_variable($word)char(\\n)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($hal) operator(=) delimiter(")string(HAL)delimiter(")operator(;) -local_variable($ascii) operator(=) ident(unpack)operator(()delimiter(")string(C*)delimiter(")operator(,) local_variable($hal)operator(\))operator(;) +local_variable($hal) operator(=) string<delimiter(")content(HAL)delimiter(")>operator(;) +local_variable($ascii) operator(=) predefined(unpack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) local_variable($hal)operator(\))operator(;) reserved(foreach) operator(()local_variable($ascii) reserved(as) local_variable($val)operator(\)) operator({) local_variable($val)operator(++)operator(;) comment(# add one to each ASCII value) operator(}) -pre_type(eval)operator(()delimiter(')string($ibm = pack("C*", )delimiter(')operator(.)ident(implode)operator(()delimiter(')string(,)delimiter(')operator(,)local_variable($ascii)operator(\))operator(.)delimiter(')string(\);)delimiter(')operator(\))operator(;) -pre_type(print) delimiter(")local_variable($ibm)char(\\n)delimiter(")operator(;) comment(# prints "IBM") +predefined(eval)operator(()string<delimiter(')content($ibm = pack("C*", )delimiter(')>operator(.)predefined(implode)operator(()string<delimiter(')content(,)delimiter(')>operator(,)local_variable($ascii)operator(\))operator(.)string<delimiter(')content(\);)delimiter(')>operator(\))operator(;) +predefined(print) string<delimiter(")local_variable($ibm)char(\\n)delimiter(")>operator(;) comment(# prints "IBM") comment(#-----------------------------) comment(# @@PLEAC@@_1.5) comment(#-----------------------------) comment(// using perl regexp) -local_variable($array) operator(=) ident(preg_split)operator(()delimiter(')string(//)delimiter(')operator(,) local_variable($string) operator(,)integer(-1)operator(,) constant(PREG_SPLIT_NO_EMPTY)operator(\))operator(;) +local_variable($array) operator(=) predefined(preg_split)operator(()string<delimiter(')content(//)delimiter(')>operator(,) local_variable($string) operator(,)operator(-)integer(1)operator(,) constant(PREG_SPLIT_NO_EMPTY)operator(\))operator(;) comment(// using PHP function: $array = str_split($string\);) comment(// Cannot use unpack with a format of 'U*' in PHP.) comment(#-----------------------------) -reserved(for) operator(()local_variable($offset) operator(=) integer(0)operator(;) ident(preg_match)operator(()delimiter(')string(/(.\)/)delimiter(')operator(,) local_variable($string)operator(,) local_variable($matches)operator(,) integer(0)operator(,) local_variable($offset)operator(\)) operator(>) integer(0)operator(;) local_variable($offset)operator(++)operator(\)) operator({) +reserved(for) operator(()local_variable($offset) operator(=) integer(0)operator(;) predefined(preg_match)operator(()string<delimiter(')content(/(.\)/)delimiter(')>operator(,) local_variable($string)operator(,) local_variable($matches)operator(,) integer(0)operator(,) local_variable($offset)operator(\)) operator(>) integer(0)operator(;) local_variable($offset)operator(++)operator(\)) operator({) comment(// $matches[1] has charcter, ord($matches[1]\) its number) operator(}) comment(#-----------------------------) -local_variable($seen) operator(=) pre_type(array)operator(()operator(\))operator(;) -local_variable($string) operator(=) delimiter(")string(an apple a day)delimiter(")operator(;) -reserved(foreach) operator(()ident(str_split)operator(()local_variable($string)operator(\)) reserved(as) local_variable($char)operator(\)) operator({) +local_variable($seen) operator(=) predefined(array)operator(()operator(\))operator(;) +local_variable($string) operator(=) string<delimiter(")content(an apple a day)delimiter(")>operator(;) +reserved(foreach) operator(()predefined(str_split)operator(()local_variable($string)operator(\)) reserved(as) local_variable($char)operator(\)) operator({) local_variable($seen)operator([)local_variable($char)operator(]) operator(=) integer(1)operator(;) operator(}) -local_variable($keys) operator(=) ident(array_keys)operator(()local_variable($seen)operator(\))operator(;) -ident(sort)operator(()local_variable($keys)operator(\))operator(;) -pre_type(print) delimiter(")string(unique chars are: )delimiter(") operator(.) ident(implode)operator(()delimiter(')delimiter(')operator(,) local_variable($keys)operator(\))operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +local_variable($keys) operator(=) predefined(array_keys)operator(()local_variable($seen)operator(\))operator(;) +predefined(sort)operator(()local_variable($keys)operator(\))operator(;) +predefined(print) string<delimiter(")content(unique chars are: )delimiter(")> operator(.) predefined(implode)operator(()string<delimiter(')delimiter(')>operator(,) local_variable($keys)operator(\))operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) ident(unique) ident(chars) label(are)operator(:) ident(adelnpy) comment(#-----------------------------) -local_variable($seen) operator(=) pre_type(array)operator(()operator(\))operator(;) -local_variable($string) operator(=) delimiter(")string(an apple a day)delimiter(")operator(;) -reserved(for) operator(()local_variable($offset) operator(=) integer(0)operator(;) ident(preg_match)operator(()delimiter(')string(/(.\)/)delimiter(')operator(,) local_variable($string)operator(,) local_variable($matches)operator(,) integer(0)operator(,) local_variable($offset)operator(\)) operator(>) integer(0)operator(;) local_variable($offset)operator(++)operator(\)) operator({) +local_variable($seen) operator(=) predefined(array)operator(()operator(\))operator(;) +local_variable($string) operator(=) string<delimiter(")content(an apple a day)delimiter(")>operator(;) +reserved(for) operator(()local_variable($offset) operator(=) integer(0)operator(;) predefined(preg_match)operator(()string<delimiter(')content(/(.\)/)delimiter(')>operator(,) local_variable($string)operator(,) local_variable($matches)operator(,) integer(0)operator(,) local_variable($offset)operator(\)) operator(>) integer(0)operator(;) local_variable($offset)operator(++)operator(\)) operator({) local_variable($seen)operator([)local_variable($matches)operator([)integer(1)operator(])operator(]) operator(=) integer(1)operator(;) operator(}) -local_variable($keys) operator(=) ident(array_keys)operator(()local_variable($seen)operator(\))operator(;) -ident(sort)operator(()local_variable($keys)operator(\))operator(;) -pre_type(print) delimiter(")string(unique chars are: )delimiter(") operator(.) ident(implode)operator(()delimiter(')delimiter(')operator(,) local_variable($keys)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +local_variable($keys) operator(=) predefined(array_keys)operator(()local_variable($seen)operator(\))operator(;) +predefined(sort)operator(()local_variable($keys)operator(\))operator(;) +predefined(print) string<delimiter(")content(unique chars are: )delimiter(")> operator(.) predefined(implode)operator(()string<delimiter(')delimiter(')>operator(,) local_variable($keys)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) ident(unique) ident(chars) label(are)operator(:) ident(adelnpy) comment(#-----------------------------) local_variable($sum) operator(=) integer(0)operator(;) -reserved(foreach) operator(()ident(unpack)operator(()delimiter(")string(C*)delimiter(")operator(,) local_variable($string)operator(\)) reserved(as) local_variable($byteval)operator(\)) operator({) +reserved(foreach) operator(()predefined(unpack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) local_variable($string)operator(\)) reserved(as) local_variable($byteval)operator(\)) operator({) local_variable($sum) operator(+)operator(=) local_variable($byteval)operator(;) operator(}) -pre_type(print) delimiter(")string(sum is )local_variable($sum)char(\\n)delimiter(")operator(;) +predefined(print) string<delimiter(")content(sum is )local_variable($sum)char(\\n)delimiter(")>operator(;) comment(// prints "1248" if $string was "an apple a day") comment(#-----------------------------) -local_variable($sum) operator(=) ident(array_sum)operator(()ident(unpack)operator(()delimiter(")string(C*)delimiter(")operator(,) local_variable($string)operator(\))operator(\))operator(;) +local_variable($sum) operator(=) predefined(array_sum)operator(()predefined(unpack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) local_variable($string)operator(\))operator(\))operator(;) comment(#-----------------------------) comment(// sum - compute 16-bit checksum of all input files) -local_variable($handle) operator(=) operator(@)ident(fopen)operator(()local_variable($argv)operator([)integer(1)operator(])operator(,) delimiter(')string(r)delimiter(')operator(\))operator(;) +local_variable($handle) operator(=) operator(@)predefined(fopen)operator(()local_variable($argv)operator([)integer(1)operator(])operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(;) local_variable($checksum) operator(=) integer(0)operator(;) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($handle)operator(\))operator(\)) operator({) - local_variable($checksum) operator(+)operator(=) operator(()ident(array_sum)operator(()ident(unpack)operator(()delimiter(")string(C*)delimiter(")operator(,) ident(fgets)operator(()local_variable($handle)operator(\))operator(\))operator(\))operator(\))operator(;) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($handle)operator(\))operator(\)) operator({) + local_variable($checksum) operator(+)operator(=) operator(()predefined(array_sum)operator(()predefined(unpack)operator(()string<delimiter(")content(C*)delimiter(")>operator(,) predefined(fgets)operator(()local_variable($handle)operator(\))operator(\))operator(\))operator(\))operator(;) operator(}) -local_variable($checksum) operator(%)operator(=) ident(pow)operator(()integer(2)operator(,)integer(16)operator(\)) operator(-) integer(1)operator(;) -pre_type(print) delimiter(")local_variable($checksum)char(\\n)delimiter(")operator(;) +local_variable($checksum) operator(%)operator(=) predefined(pow)operator(()integer(2)operator(,)integer(16)operator(\)) operator(-) integer(1)operator(;) +predefined(print) string<delimiter(")local_variable($checksum)char(\\n)delimiter(")>operator(;) comment(# @@INCLUDE@@ include/php/slowcat.php) comment(#-----------------------------) comment(# @@PLEAC@@_1.6) comment(#-----------------------------) -local_variable($revchars) operator(=) ident(strrev)operator(()local_variable($string)operator(\))operator(;) +local_variable($revchars) operator(=) predefined(strrev)operator(()local_variable($string)operator(\))operator(;) comment(#-----------------------------) -local_variable($revwords) operator(=) ident(implode)operator(()delimiter(")string( )delimiter(")operator(,) ident(array_reverse)operator(()ident(explode)operator(()delimiter(")string( )delimiter(")operator(,) local_variable($string)operator(\))operator(\))operator(\))operator(;) +local_variable($revwords) operator(=) predefined(implode)operator(()string<delimiter(")content( )delimiter(")>operator(,) predefined(array_reverse)operator(()predefined(explode)operator(()string<delimiter(")content( )delimiter(")>operator(,) local_variable($string)operator(\))operator(\))operator(\))operator(;) comment(#-----------------------------) comment(// reverse word order) -local_variable($string) operator(=) delimiter(')string(Yoda said, "can you see this?")delimiter(')operator(;) -local_variable($allwords) operator(=) ident(explode)operator(()delimiter(")string( )delimiter(")operator(,) local_variable($string)operator(\))operator(;) -local_variable($revwords) operator(=) ident(implode)operator(()delimiter(")string( )delimiter(")operator(,) ident(array_reverse)operator(()local_variable($allwords)operator(\))operator(\))operator(;) -pre_type(print) local_variable($revwords) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -ident(this)operator(?)delimiter(")string( see you )delimiter(")ident(can) ident(said)operator(,) constant(Yoda) +local_variable($string) operator(=) string<delimiter(')content(Yoda said, "can you see this?")delimiter(')>operator(;) +local_variable($allwords) operator(=) predefined(explode)operator(()string<delimiter(")content( )delimiter(")>operator(,) local_variable($string)operator(\))operator(;) +local_variable($revwords) operator(=) predefined(implode)operator(()string<delimiter(")content( )delimiter(")>operator(,) predefined(array_reverse)operator(()local_variable($allwords)operator(\))operator(\))operator(;) +predefined(print) local_variable($revwords) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +ident(this)operator(?)string<delimiter(")content( see you )delimiter(")>ident(can) ident(said)operator(,) constant(Yoda) comment(#-----------------------------) -local_variable($revwords) operator(=) ident(implode)operator(()delimiter(")string( )delimiter(")operator(,) ident(array_reverse)operator(()ident(explode)operator(()delimiter(")string( )delimiter(")operator(,) local_variable($string)operator(\))operator(\))operator(\))operator(;) +local_variable($revwords) operator(=) predefined(implode)operator(()string<delimiter(")content( )delimiter(")>operator(,) predefined(array_reverse)operator(()predefined(explode)operator(()string<delimiter(")content( )delimiter(")>operator(,) local_variable($string)operator(\))operator(\))operator(\))operator(;) comment(#-----------------------------) -local_variable($revwords) operator(=) ident(implode)operator(()delimiter(")string( )delimiter(")operator(,) ident(array_reverse)operator(()ident(preg_split)operator(()delimiter(")string(/()string(\\)string(s+\)/)delimiter(")operator(,) local_variable($string)operator(\))operator(\))operator(\))operator(;) +local_variable($revwords) operator(=) predefined(implode)operator(()string<delimiter(")content( )delimiter(")>operator(,) predefined(array_reverse)operator(()predefined(preg_split)operator(()string<delimiter(")content(/()content(\\s)content(+\)/)delimiter(")>operator(,) local_variable($string)operator(\))operator(\))operator(\))operator(;) comment(#-----------------------------) -local_variable($word) operator(=) delimiter(")string(reviver)delimiter(")operator(;) -local_variable($is_palindrome) operator(=) operator(()local_variable($word) operator(===) ident(strrev)operator(()local_variable($word)operator(\))operator(\))operator(;) +local_variable($word) operator(=) string<delimiter(")content(reviver)delimiter(")>operator(;) +local_variable($is_palindrome) operator(=) operator(()local_variable($word) operator(===) predefined(strrev)operator(()local_variable($word)operator(\))operator(\))operator(;) comment(#-----------------------------) comment(// quite a one-liner since "php" does not have a -n switch) -operator(%) ident(php) operator(-)ident(r) delimiter(')string(while (!feof(STDIN\)\) { $word = rtrim(fgets(STDIN\)\); if ($word == strrev($word\) && strlen($word\) > 5\) print $word; })delimiter(') operator(<) operator(/)ident(usr)operator(/)ident(dict)operator(/)ident(words) +operator(%) ident(php) operator(-)ident(r) string<delimiter(')content(while (!feof(STDIN\)\) { $word = rtrim(fgets(STDIN\)\); if ($word == strrev($word\) && strlen($word\) > 5\) print $word; })delimiter(')> operator(<) operator(/)ident(usr)operator(/)ident(dict)operator(/)ident(words) comment(#-----------------------------) comment(# @@PLEAC@@_1.8) comment(#-----------------------------) -local_variable($text) operator(=) ident(preg_replace)operator(()delimiter(')string(/)string(\\)string($()string(\\)string(w+\)/e)delimiter(')operator(,) delimiter(')string($$1)delimiter(')operator(,) local_variable($text)operator(\))operator(;) +local_variable($text) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/)content(\\$)content(()content(\\w)content(+\)/e)delimiter(')>operator(,) string<delimiter(')content($$1)delimiter(')>operator(,) local_variable($text)operator(\))operator(;) comment(#-----------------------------) -pre_type(list)operator(()local_variable($rows)operator(,) local_variable($cols)operator(\)) operator(=) constant(Array)operator(()integer(24)operator(,) integer(80)operator(\))operator(;) -local_variable($text) operator(=) delimiter(')string(I am $rows high and $cols long)delimiter(')operator(;) -local_variable($text) operator(=) ident(preg_replace)operator(()delimiter(')string(/)string(\\)string($()string(\\)string(w+\)/e)delimiter(')operator(,) delimiter(')string($$1)delimiter(')operator(,) local_variable($text)operator(\))operator(;) -pre_type(print) local_variable($text)operator(;) +predefined(list)operator(()local_variable($rows)operator(,) local_variable($cols)operator(\)) operator(=) predefined(Array)operator(()integer(24)operator(,) integer(80)operator(\))operator(;) +local_variable($text) operator(=) string<delimiter(')content(I am $rows high and $cols long)delimiter(')>operator(;) +local_variable($text) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/)content(\\$)content(()content(\\w)content(+\)/e)delimiter(')>operator(,) string<delimiter(')content($$1)delimiter(')>operator(,) local_variable($text)operator(\))operator(;) +predefined(print) local_variable($text)operator(;) comment(#-----------------------------) -local_variable($text) operator(=) delimiter(")string(I am 17 years old)delimiter(")operator(;) -local_variable($text) operator(=) ident(preg_replace)operator(()delimiter(')string(/()string(\\)string(d+\)/e)delimiter(')operator(,) delimiter(')string(2*$1)delimiter(')operator(,) local_variable($text)operator(\))operator(;) +local_variable($text) operator(=) string<delimiter(")content(I am 17 years old)delimiter(")>operator(;) +local_variable($text) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/()content(\\d)content(+\)/e)delimiter(')>operator(,) string<delimiter(')content(2*$1)delimiter(')>operator(,) local_variable($text)operator(\))operator(;) comment(#-----------------------------) comment(# expand variables in $text, but put an error message in) comment(# if the variable isn't defined) -local_variable($text) operator(=) ident(preg_replace)operator(()delimiter(')string(/)string(\\)string($()string(\\)string(w+\)/e)delimiter(')operator(,)delimiter(')string(isset($$1\)?$$1:)char(\\')string([NO VARIABLE: $$1])char(\\')delimiter(')operator(,) local_variable($text)operator(\))operator(;) +local_variable($text) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/)content(\\$)content(()content(\\w)content(+\)/e)delimiter(')>operator(,)string<delimiter(')content(isset($$1\)?$$1:)content(\\')content([NO VARIABLE: $$1])content(\\')delimiter(')>operator(,) local_variable($text)operator(\))operator(;) comment(#-----------------------------) comment(// As PHP arrays are used as hashes too, separation of section 4) @@ -304,30 +304,30 @@ comment(// and section 5 makes little sense.) comment(# @@PLEAC@@_1.9) comment(#-----------------------------) -local_variable($big) operator(=) ident(strtoupper)operator(()local_variable($little)operator(\))operator(;) -local_variable($little) operator(=) ident(strtolower)operator(()local_variable($big)operator(\))operator(;) +local_variable($big) operator(=) predefined(strtoupper)operator(()local_variable($little)operator(\))operator(;) +local_variable($little) operator(=) predefined(strtolower)operator(()local_variable($big)operator(\))operator(;) comment(// PHP does not have the\\L and\\U string escapes.) comment(#-----------------------------) -local_variable($big) operator(=) ident(ucfirst)operator(()local_variable($little)operator(\))operator(;) -local_variable($little) operator(=) ident(strtolower)operator(()ident(substr)operator(()local_variable($big)operator(,) integer(0)operator(,) integer(1)operator(\))operator(\)) operator(.) ident(substr)operator(()local_variable($big)operator(,) integer(1)operator(\))operator(;) +local_variable($big) operator(=) predefined(ucfirst)operator(()local_variable($little)operator(\))operator(;) +local_variable($little) operator(=) predefined(strtolower)operator(()predefined(substr)operator(()local_variable($big)operator(,) integer(0)operator(,) integer(1)operator(\))operator(\)) operator(.) predefined(substr)operator(()local_variable($big)operator(,) integer(1)operator(\))operator(;) comment(#-----------------------------) -local_variable($beast) operator(=) delimiter(")string(dromedary)delimiter(")operator(;) +local_variable($beast) operator(=) string<delimiter(")content(dromedary)delimiter(")>operator(;) comment(// capitalize various parts of $beast) -local_variable($capit) operator(=) ident(ucfirst)operator(()local_variable($beast)operator(\))operator(;) comment(// Dromedar) +local_variable($capit) operator(=) predefined(ucfirst)operator(()local_variable($beast)operator(\))operator(;) comment(// Dromedar) comment(// PHP does not have the\\L and\\U string escapes.) -local_variable($capall) operator(=) ident(strtoupper)operator(()local_variable($beast)operator(\))operator(;) comment(// DROMEDAR) +local_variable($capall) operator(=) predefined(strtoupper)operator(()local_variable($beast)operator(\))operator(;) comment(// DROMEDAR) comment(// PHP does not have the\\L and\\U string escapes.) -local_variable($caprest) operator(=) ident(strtolower)operator(()ident(substr)operator(()local_variable($beast)operator(,) integer(0)operator(,) integer(1)operator(\))operator(\)) operator(.) ident(substr)operator(()ident(strtoupper)operator(()local_variable($beast)operator(\))operator(,) integer(1)operator(\))operator(;) comment(// dROMEDAR) +local_variable($caprest) operator(=) predefined(strtolower)operator(()predefined(substr)operator(()local_variable($beast)operator(,) integer(0)operator(,) integer(1)operator(\))operator(\)) operator(.) predefined(substr)operator(()predefined(strtoupper)operator(()local_variable($beast)operator(\))operator(,) integer(1)operator(\))operator(;) comment(// dROMEDAR) comment(// PHP does not have the\\L and\\U string escapes.) comment(#-----------------------------) comment(// titlecase each word's first character, lowercase the rest) -local_variable($text) operator(=) delimiter(")string(thIS is a loNG liNE)delimiter(")operator(;) -local_variable($text) operator(=) ident(ucwords)operator(()ident(strtolower)operator(()local_variable($text)operator(\))operator(\))operator(;) -pre_type(print) local_variable($text)operator(;) +local_variable($text) operator(=) string<delimiter(")content(thIS is a loNG liNE)delimiter(")>operator(;) +local_variable($text) operator(=) predefined(ucwords)operator(()predefined(strtolower)operator(()local_variable($text)operator(\))operator(\))operator(;) +predefined(print) local_variable($text)operator(;) constant(This) constant(Is) constant(A) constant(Long) constant(Line) comment(#-----------------------------) -reserved(if) operator(()ident(strtoupper)operator(()local_variable($a)operator(\)) operator(==) ident(strtoupper)operator(()local_variable($b)operator(\))operator(\)) operator({) comment(// or strcasecmp($a, $b\) == 0) - pre_type(print) delimiter(")string(a and b are the same)char(\\n)delimiter(")operator(;) +reserved(if) operator(()predefined(strtoupper)operator(()local_variable($a)operator(\)) operator(==) predefined(strtoupper)operator(()local_variable($b)operator(\))operator(\)) operator({) comment(// or strcasecmp($a, $b\) == 0) + predefined(print) string<delimiter(")content(a and b are the same)char(\\n)delimiter(")>operator(;) operator(}) comment(#-----------------------------) comment(# @@INCLUDE@@ include/php/randcap.php) @@ -337,12 +337,12 @@ comment(#-----------------------------) comment(# @@PLEAC@@_1.10) comment(#-----------------------------) -pre_type(echo) local_variable($var1) operator(.) ident(func)operator(()operator(\)) operator(.) local_variable($var2)operator(;) comment(// scalar only) +predefined(echo) local_variable($var1) operator(.) ident(func)operator(()operator(\)) operator(.) local_variable($var2)operator(;) comment(// scalar only) comment(#-----------------------------) comment(// PHP can only handle variable expression without operators) -local_variable($answer) operator(=) delimiter(")string(STRING )string($)string({)string([ VAR EXPR ]} MORE STRING)delimiter(")operator(;) +local_variable($answer) operator(=) string<delimiter(")content(STRING )content($)string({)content([ VAR EXPR ]} MORE STRING)delimiter(")>operator(;) comment(#-----------------------------) -local_variable($phrase) operator(=) delimiter(")string(I have )delimiter(") operator(.) operator(()local_variable($n) operator(+) integer(1)operator(\)) operator(.) delimiter(")string( guanacos.)delimiter(")operator(;) +local_variable($phrase) operator(=) string<delimiter(")content(I have )delimiter(")> operator(.) operator(()local_variable($n) operator(+) integer(1)operator(\)) operator(.) string<delimiter(")content( guanacos.)delimiter(")>operator(;) comment(// PHP cannot handle the complex exression: ${\\($n + 1\)}) comment(#-----------------------------) comment(// Rest of Discussion is not applicable to PHP) @@ -356,63 +356,63 @@ comment(# @@INCOMPLETE@@) comment(# @@PLEAC@@_1.12) comment(#-----------------------------) -local_variable($output) operator(=) ident(wordwrap)operator(()local_variable($str)operator(,) local_variable($width)operator(,) local_variable($break)operator(,) local_variable($cut)operator(\))operator(;) +local_variable($output) operator(=) predefined(wordwrap)operator(()local_variable($str)operator(,) local_variable($width)operator(,) local_variable($break)operator(,) local_variable($cut)operator(\))operator(;) comment(#-----------------------------) comment(# @@INCLUDE@@ include/php/wrapdemo.php) comment(#-----------------------------) comment(// merge multiple lines into one, then wrap one long line) -pre_type(print) ident(wordwrap)operator(()ident(str_replace)operator(()delimiter(")char(\\n)delimiter(")operator(,) delimiter(")string( )delimiter(")operator(,) ident(file_get_contents)operator(()delimiter(')string(php://stdin)delimiter(')operator(\))operator(\))operator(\))operator(;) +predefined(print) predefined(wordwrap)operator(()predefined(str_replace)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) string<delimiter(")content( )delimiter(")>operator(,) predefined(file_get_contents)operator(()string<delimiter(')content(php://stdin)delimiter(')>operator(\))operator(\))operator(\))operator(;) comment(#-----------------------------) -reserved(while)operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) - pre_type(print) ident(wordwrap)operator(()ident(str_replace)operator(()delimiter(")char(\\n)delimiter(")operator(,) delimiter(")string( )delimiter(")operator(,) ident(stream_get_line)operator(()constant(STDIN)operator(,) integer(0)operator(,) delimiter(")char(\\n)char(\\n)delimiter(")operator(\))operator(\))operator(\))operator(;) - pre_type(print) delimiter(")char(\\n)char(\\n)delimiter(")operator(;) +reserved(while)operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) + predefined(print) predefined(wordwrap)operator(()predefined(str_replace)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) string<delimiter(")content( )delimiter(")>operator(,) ident(stream_get_line)operator(()constant(STDIN)operator(,) integer(0)operator(,) string<delimiter(")char(\\n)char(\\n)delimiter(")>operator(\))operator(\))operator(\))operator(;) + predefined(print) string<delimiter(")char(\\n)char(\\n)delimiter(")>operator(;) operator(}) comment(#-----------------------------) comment(# @@PLEAC@@_1.13) comment(#-----------------------------) comment(//backslash) -local_variable($var) operator(=) ident(preg_replace)operator(()delimiter(')string(/([CHARLIST]\)/)delimiter(')operator(,) delimiter(')char(\\\\)string(\\)string($1)delimiter(')operator(,) local_variable($var)operator(\))operator(;) +local_variable($var) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/([CHARLIST]\)/)delimiter(')>operator(,) string<delimiter(')content(\\\\)content(\\$)content(1)delimiter(')>operator(,) local_variable($var)operator(\))operator(;) comment(// double) -local_variable($var) operator(=) ident(preg_replace)operator(()delimiter(')string(/([CHARLIST]\)/)delimiter(')operator(,) delimiter(')string($1$1)delimiter(')operator(,) local_variable($var)operator(\))operator(;) +local_variable($var) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/([CHARLIST]\)/)delimiter(')>operator(,) string<delimiter(')content($1$1)delimiter(')>operator(,) local_variable($var)operator(\))operator(;) comment(#-----------------------------) -local_variable($var) operator(=) ident(preg_replace)operator(()delimiter(')string(/%/)delimiter(')operator(,) delimiter(')string(%%)delimiter(')operator(,) local_variable($var)operator(\))operator(;) +local_variable($var) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/%/)delimiter(')>operator(,) string<delimiter(')content(%%)delimiter(')>operator(,) local_variable($var)operator(\))operator(;) comment(#-----------------------------) -local_variable($string) operator(=) delimiter(')string(Mom said, "Don)char(\\')string(t do that.")delimiter(')operator(;) -local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/([)char(\\')string("]\)/)delimiter(')operator(,) delimiter(')char(\\\\)string(\\)string($1)delimiter(')operator(,) local_variable($string)operator(\))operator(;) +local_variable($string) operator(=) string<delimiter(')content(Mom said, "Don)content(\\')content(t do that.")delimiter(')>operator(;) +local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/([)content(\\')content("]\)/)delimiter(')>operator(,) string<delimiter(')content(\\\\)content(\\$)content(1)delimiter(')>operator(,) local_variable($string)operator(\))operator(;) comment(// in PHP you can also use the addslashes(\) function) comment(#-----------------------------) -local_variable($string) operator(=) delimiter(')string(Mom said, "Don)char(\\')string(t do that.")delimiter(')operator(;) -local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/([)char(\\')string("]\)/)delimiter(')operator(,) delimiter(')string($1$1)delimiter(')operator(,) local_variable($string)operator(\))operator(;) +local_variable($string) operator(=) string<delimiter(')content(Mom said, "Don)content(\\')content(t do that.")delimiter(')>operator(;) +local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/([)content(\\')content("]\)/)delimiter(')>operator(,) string<delimiter(')content($1$1)delimiter(')>operator(,) local_variable($string)operator(\))operator(;) comment(#-----------------------------) -local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/([^A-Z]\)/)delimiter(')operator(,) delimiter(')char(\\\\)string(\\)string($1)delimiter(')operator(,) local_variable($string)operator(\))operator(;) +local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/([^A-Z]\)/)delimiter(')>operator(,) string<delimiter(')content(\\\\)content(\\$)content(1)delimiter(')>operator(,) local_variable($string)operator(\))operator(;) comment(#-----------------------------) comment(// PHP does not have the \\Q and \\E string metacharacters) -local_variable($string) operator(=) delimiter(")string(this is)char(\\\\)string( a)char(\\\\)string( test)char(\\\\)string(!)delimiter(")operator(;) +local_variable($string) operator(=) string<delimiter(")content(this is)char(\\\\)content( a)char(\\\\)content( test)char(\\\\)content(!)delimiter(")>operator(;) comment(// PHP's quotemeta(\) function is not the same as perl's quotemeta(\) function) -local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/()string(\\)string(W\)/)delimiter(')operator(,) delimiter(')char(\\\\)string(\\)string($1)delimiter(')operator(,) delimiter(')string(is a test!)delimiter(')operator(\))operator(;) +local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/()content(\\W)content(\)/)delimiter(')>operator(,) string<delimiter(')content(\\\\)content(\\$)content(1)delimiter(')>operator(,) string<delimiter(')content(is a test!)delimiter(')>operator(\))operator(;) comment(#-----------------------------) comment(# @@PLEAC@@_1.14) comment(#-----------------------------) -local_variable($string) operator(=) ident(trim)operator(()local_variable($string)operator(\))operator(;) +local_variable($string) operator(=) predefined(trim)operator(()local_variable($string)operator(\))operator(;) comment(#-----------------------------) comment(// print what's typed, but surrounded by > < symbols) -reserved(while) operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) - pre_type(print) delimiter(")string(>)delimiter(") operator(.) ident(substr)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(,) integer(0)operator(,) integer(-1)operator(\)) operator(.) delimiter(")string(<)char(\\n)delimiter(")operator(;) +reserved(while) operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) + predefined(print) string<delimiter(")content(>)delimiter(")> operator(.) predefined(substr)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(,) integer(0)operator(,) operator(-)integer(1)operator(\)) operator(.) string<delimiter(")content(<)char(\\n)delimiter(")>operator(;) operator(}) comment(#-----------------------------) -local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/)string(\\)string(s+/)delimiter(')operator(,) delimiter(')string( )delimiter(')operator(,) local_variable($string)operator(\))operator(;) comment(// finally, collapse middle) +local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/)content(\\s)content(+/)delimiter(')>operator(,) string<delimiter(')content( )delimiter(')>operator(,) local_variable($string)operator(\))operator(;) comment(// finally, collapse middle) comment(#-----------------------------) -local_variable($string) operator(=) ident(trim)operator(()local_variable($string)operator(\))operator(;) -local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/)string(\\)string(s+/)delimiter(')operator(,) delimiter(')string( )delimiter(')operator(,) local_variable($string)operator(\))operator(;) +local_variable($string) operator(=) predefined(trim)operator(()local_variable($string)operator(\))operator(;) +local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/)content(\\s)content(+/)delimiter(')>operator(,) string<delimiter(')content( )delimiter(')>operator(,) local_variable($string)operator(\))operator(;) comment(#-----------------------------) comment(// 1. trim leading and trailing white space) comment(// 2. collapse internal whitespace to single space each) -pre_type(function) ident(sub_trim)operator(()local_variable($string)operator(\)) operator({) - local_variable($string) operator(=) ident(trim)operator(()local_variable($string)operator(\))operator(;) - local_variable($string) operator(=) ident(preg_replace)operator(()delimiter(')string(/)string(\\)string(s+/)delimiter(')operator(,) delimiter(')string( )delimiter(')operator(,) local_variable($string)operator(\))operator(;) - reserved(return) local_variable($string)operator(;) +reserved(function) ident(sub_trim)operator(()local_variable($string)operator(\)) operator({) + local_variable($string) operator(=) predefined(trim)operator(()local_variable($string)operator(\))operator(;) + local_variable($string) operator(=) predefined(preg_replace)operator(()string<delimiter(')content(/)content(\\s)content(+/)delimiter(')>operator(,) string<delimiter(')content( )delimiter(')>operator(,) local_variable($string)operator(\))operator(;) + predefined(return) local_variable($string)operator(;) operator(}) comment(#-----------------------------) @@ -422,39 +422,39 @@ comment(# @@INCOMPLETE@@) comment(# @@PLEAC@@_1.16) comment(#-----------------------------) -local_variable($code) operator(=) ident(soundex)operator(()local_variable($string)operator(\))operator(;) +local_variable($code) operator(=) predefined(soundex)operator(()local_variable($string)operator(\))operator(;) comment(#-----------------------------) -local_variable($phoned_words) operator(=) ident(metaphone)operator(()delimiter(")string(Schwern)delimiter(")operator(\))operator(;) +local_variable($phoned_words) operator(=) predefined(metaphone)operator(()string<delimiter(")content(Schwern)delimiter(")>operator(\))operator(;) comment(#-----------------------------) comment(// substitution function for getpwent(\):) comment(// returns an array of user entries,) comment(// each entry contains the username and the full name) -pre_type(function) ident(getpwent)operator(()operator(\)) operator({) - local_variable($pwents) operator(=) pre_type(array)operator(()operator(\))operator(;) - local_variable($handle) operator(=) ident(fopen)operator(()delimiter(")string(passwd)delimiter(")operator(,) delimiter(")string(r)delimiter(")operator(\))operator(;) - reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($handle)operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($handle)operator(\))operator(;) - reserved(if) operator(()ident(preg_match)operator(()delimiter(")string(/^#/)delimiter(")operator(,) local_variable($line)operator(\))operator(\)) reserved(continue)operator(;) - local_variable($cols) operator(=) ident(explode)operator(()delimiter(")string(:)delimiter(")operator(,) local_variable($line)operator(\))operator(;) +reserved(function) ident(getpwent)operator(()operator(\)) operator({) + local_variable($pwents) operator(=) predefined(array)operator(()operator(\))operator(;) + local_variable($handle) operator(=) predefined(fopen)operator(()string<delimiter(")content(passwd)delimiter(")>operator(,) string<delimiter(")content(r)delimiter(")>operator(\))operator(;) + reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($handle)operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($handle)operator(\))operator(;) + reserved(if) operator(()predefined(preg_match)operator(()string<delimiter(")content(/^#/)delimiter(")>operator(,) local_variable($line)operator(\))operator(\)) reserved(continue)operator(;) + local_variable($cols) operator(=) predefined(explode)operator(()string<delimiter(")content(:)delimiter(")>operator(,) local_variable($line)operator(\))operator(;) local_variable($pwents)operator([)local_variable($cols)operator([)integer(0)operator(])operator(]) operator(=) local_variable($cols)operator([)integer(4)operator(])operator(;) operator(}) - reserved(return) local_variable($pwents)operator(;) + predefined(return) local_variable($pwents)operator(;) operator(}) -pre_type(print) delimiter(")string(Lookup user: )delimiter(")operator(;) -local_variable($user) operator(=) ident(rtrim)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) -reserved(if) operator(()pre_type(empty)operator(()local_variable($user)operator(\))operator(\)) reserved(exit)operator(;) -local_variable($name_code) operator(=) ident(soundex)operator(()local_variable($user)operator(\))operator(;) +predefined(print) string<delimiter(")content(Lookup user: )delimiter(")>operator(;) +local_variable($user) operator(=) predefined(rtrim)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) +reserved(if) operator(()predefined(empty)operator(()local_variable($user)operator(\))operator(\)) predefined(exit)operator(;) +local_variable($name_code) operator(=) predefined(soundex)operator(()local_variable($user)operator(\))operator(;) local_variable($pwents) operator(=) ident(getpwent)operator(()operator(\))operator(;) reserved(foreach)operator(()local_variable($pwents) reserved(as) local_variable($username) operator(=>) local_variable($fullname)operator(\)) operator({) - ident(preg_match)operator(()delimiter(")string(/()string(\\)string(w+\)[^,]*)char(\\b)string(()string(\\)string(w+\)/)delimiter(")operator(,) local_variable($fullname)operator(,) local_variable($matches)operator(\))operator(;) - pre_type(list)operator(()operator(,) local_variable($firstname)operator(,) local_variable($lastname)operator(\)) operator(=) local_variable($matches)operator(;) + predefined(preg_match)operator(()string<delimiter(")content(/()content(\\w)content(+\)[^,]*)char(\\b)content(()content(\\w)content(+\)/)delimiter(")>operator(,) local_variable($fullname)operator(,) local_variable($matches)operator(\))operator(;) + predefined(list)operator(()operator(,) local_variable($firstname)operator(,) local_variable($lastname)operator(\)) operator(=) local_variable($matches)operator(;) - reserved(if) operator(()local_variable($name_code) operator(==) ident(soundex)operator(()local_variable($username)operator(\)) operator(|)operator(|) - local_variable($name_code) operator(==) ident(soundex)operator(()local_variable($lastname)operator(\)) operator(|)operator(|) - local_variable($name_code) operator(==) ident(soundex)operator(()local_variable($firstname)operator(\))operator(\)) + reserved(if) operator(()local_variable($name_code) operator(==) predefined(soundex)operator(()local_variable($username)operator(\)) operator(|)operator(|) + local_variable($name_code) operator(==) predefined(soundex)operator(()local_variable($lastname)operator(\)) operator(|)operator(|) + local_variable($name_code) operator(==) predefined(soundex)operator(()local_variable($firstname)operator(\))operator(\)) operator({) - ident(printf)operator(()delimiter(")string(%s: %s %s)char(\\n)delimiter(")operator(,) local_variable($username)operator(,) local_variable($firstname)operator(,) local_variable($lastname)operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(%s: %s %s)char(\\n)delimiter(")>operator(,) local_variable($username)operator(,) local_variable($firstname)operator(,) local_variable($lastname)operator(\))operator(;) operator(}) operator(}) comment(#-----------------------------) @@ -466,14 +466,14 @@ comment(#-----------------------------) comment(# @@INCLUDE@@ include/php/fixstyle2.php) comment(#-----------------------------) comment(// very fast, but whitespace collapse) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($input)operator(\))operator(\)) operator({) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($input)operator(\))operator(\)) operator({) local_variable($i) operator(=) integer(0)operator(;) - ident(preg_match)operator(()delimiter(")string(/^()string(\\)string(s*\)(.*\)/)delimiter(")operator(,) ident(fgets)operator(()local_variable($input)operator(\))operator(,) local_variable($matches)operator(\))operator(;) comment(// emit leading whitespace) - ident(fwrite)operator(()local_variable($output)operator(,) local_variable($matches)operator([)integer(1)operator(])operator(\))operator(;) - reserved(foreach) operator(()ident(preg_split)operator(()delimiter(")string(/()string(\\)string(s+\)/)delimiter(")operator(,) local_variable($matches)operator([)integer(2)operator(])operator(\)) reserved(as) local_variable($token)operator(\)) operator({) comment(// preserve trailing whitespace) - ident(fwrite)operator(()local_variable($output)operator(,) operator(()ident(array_key_exists)operator(()local_variable($token)operator(,) local_variable($config)operator(\)) operator(?) local_variable($config)operator([)local_variable($token)operator(]) operator(:) local_variable($token)operator(\)) operator(.) delimiter(")string( )delimiter(")operator(\))operator(;) + predefined(preg_match)operator(()string<delimiter(")content(/^()content(\\s)content(*\)(.*\)/)delimiter(")>operator(,) predefined(fgets)operator(()local_variable($input)operator(\))operator(,) local_variable($matches)operator(\))operator(;) comment(// emit leading whitespace) + predefined(fwrite)operator(()local_variable($output)operator(,) local_variable($matches)operator([)integer(1)operator(])operator(\))operator(;) + reserved(foreach) operator(()predefined(preg_split)operator(()string<delimiter(")content(/()content(\\s)content(+\)/)delimiter(")>operator(,) local_variable($matches)operator([)integer(2)operator(])operator(\)) reserved(as) local_variable($token)operator(\)) operator({) comment(// preserve trailing whitespace) + predefined(fwrite)operator(()local_variable($output)operator(,) operator(()predefined(array_key_exists)operator(()local_variable($token)operator(,) local_variable($config)operator(\)) operator(?) local_variable($config)operator([)local_variable($token)operator(]) operator(:) local_variable($token)operator(\)) operator(.) string<delimiter(")content( )delimiter(")>operator(\))operator(;) operator(}) - ident(fwrite)operator(()local_variable($output)operator(,) delimiter(")char(\\n)delimiter(")operator(\))operator(;) + predefined(fwrite)operator(()local_variable($output)operator(,) string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) operator(}) comment(#-----------------------------) @@ -487,28 +487,28 @@ comment(// Two basic approaches to numeric validation:) comment(// * Built-in functions like 'is_numeric', 'is_int', 'is_float' etc) comment(// * Regexes, as shown below) -local_variable($s) operator(=) delimiter(')string(12.345)delimiter(')operator(;) +local_variable($s) operator(=) string<delimiter(')content(12.345)delimiter(')>operator(;) -ident(preg_match)operator(()delimiter(')string(/)string(\\)string(D/)delimiter(')operator(,) local_variable($s)operator(\)) operator(&)operator(&) reserved(die)operator(()delimiter(")string(has nondigits)char(\\n)delimiter(")operator(\))operator(;) -ident(preg_match)operator(()delimiter(')string(/^)string(\\)string(d+$/)delimiter(')operator(,) local_variable($s)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(not a natural number)char(\\n)delimiter(")operator(\))operator(;) -ident(preg_match)operator(()delimiter(')string(/^-?)string(\\)string(d+$/)delimiter(')operator(,) local_variable($s)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(not an integer)char(\\n)delimiter(")operator(\))operator(;) -ident(preg_match)operator(()delimiter(')string(/^[+-]?)string(\\)string(d+$/)delimiter(')operator(,) local_variable($s)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(not an integer)char(\\n)delimiter(")operator(\))operator(;) -ident(preg_match)operator(()delimiter(')string(/^-?)string(\\)string(d+)string(\\)string(.?)string(\\)string(d*$/)delimiter(')operator(,) local_variable($s)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(not a decimal)char(\\n)delimiter(")operator(\))operator(;) -ident(preg_match)operator(()delimiter(')string(/^-?(?:)string(\\)string(d+(?:)string(\\)string(.)string(\\)string(d*\)?|)string(\\)string(.)string(\\)string(d+\)$/)delimiter(')operator(,) local_variable($s)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(not a decimal)char(\\n)delimiter(")operator(\))operator(;) -ident(preg_match)operator(()delimiter(')string(/^([+-]?\)(?=)string(\\)string(d|)string(\\)string(.)string(\\)string(d\))string(\\)string(d*()string(\\)string(.)string(\\)string(d*\)?([Ee]([+-]?)string(\\)string(d+\)\)?$/)delimiter(')operator(,) local_variable($s)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(not a C float)char(\\n)delimiter(")operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/)content(\\D)content(/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(&)operator(&) predefined(die)operator(()string<delimiter(")content(has nondigits)char(\\n)delimiter(")>operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/^)content(\\d)content(+$/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(not a natural number)char(\\n)delimiter(")>operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/^-?)content(\\d)content(+$/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(not an integer)char(\\n)delimiter(")>operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/^[+-]?)content(\\d)content(+$/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(not an integer)char(\\n)delimiter(")>operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/^-?)content(\\d)content(+)content(\\.)content(?)content(\\d)content(*$/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(not a decimal)char(\\n)delimiter(")>operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/^-?(?:)content(\\d)content(+(?:)content(\\.)content(\\d)content(*\)?|)content(\\.)content(\\d)content(+\)$/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(not a decimal)char(\\n)delimiter(")>operator(\))operator(;) +predefined(preg_match)operator(()string<delimiter(')content(/^([+-]?\)(?=)content(\\d)content(|)content(\\.)content(\\d)content(\))content(\\d)content(*()content(\\.)content(\\d)content(*\)?([Ee]([+-]?)content(\\d)content(+\)\)?$/)delimiter(')>operator(,) local_variable($s)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(not a C float)char(\\n)delimiter(")>operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(getnum)operator(()local_variable($s)operator(\)) +reserved(function) ident(getnum)operator(()local_variable($s)operator(\)) operator({) - ident(sscanf)operator(()local_variable($s)operator(,) delimiter(")string(%D)delimiter(")operator(,) local_variable($number)operator(\))operator(;) reserved(return) pre_type(isset)operator(()local_variable($number)operator(\)) operator(?) local_variable($number) operator(:) integer(0)operator(;) + predefined(sscanf)operator(()local_variable($s)operator(,) string<delimiter(")content(%D)delimiter(")>operator(,) local_variable($number)operator(\))operator(;) predefined(return) predefined(isset)operator(()local_variable($number)operator(\)) operator(?) local_variable($number) operator(:) integer(0)operator(;) operator(}) -pre_type(echo) ident(getnum)operator(()integer(123)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// ok) -pre_type(echo) ident(getnum)operator(()integer(0xf)ident(f)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// ..) -pre_type(echo) ident(getnum)operator(()integer(044)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// ..) +predefined(echo) ident(getnum)operator(()integer(123)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ok) +predefined(echo) ident(getnum)operator(()integer(0xf)ident(f)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ..) +predefined(echo) ident(getnum)operator(()integer(044)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ..) -pre_type(echo) ident(getnum)operator(()delimiter(')string(x)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// fail) +predefined(echo) ident(getnum)operator(()string<delimiter(')content(x)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// fail) comment(// @@PLEAC@@_2.2) comment(// In PHP floating point comparisions are 'safe' [meaning the '==' comparison operator) @@ -530,17 +530,17 @@ operator({) operator(}) comment(// Compare as strings) -local_variable($cmp) operator(=) ident(strcmp)operator(()delimiter(')string(123456789.123456789123456789)delimiter(')operator(,) delimiter(')string(123456789.123456789123456788)delimiter(')operator(\))operator(;) +local_variable($cmp) operator(=) predefined(strcmp)operator(()string<delimiter(')content(123456789.123456789123456789)delimiter(')>operator(,) string<delimiter(')content(123456789.123456789123456788)delimiter(')>operator(\))operator(;) comment(// Use 'bccomp') local_variable($precision) operator(=) integer(5)operator(;) comment(// Number of significant comparison digits after decimal point) -reserved(if) operator(()ident(bccomp)operator(()delimiter(')string(1.111117)delimiter(')operator(,) delimiter(')string(1.111116)delimiter(')operator(,) local_variable($precision)operator(\))operator(\)) +reserved(if) operator(()predefined(bccomp)operator(()string<delimiter(')content(1.111117)delimiter(')>operator(,) string<delimiter(')content(1.111116)delimiter(')>operator(,) local_variable($precision)operator(\))operator(\)) operator({) operator(;) comment(// ...) operator(}) local_variable($precision) operator(=) integer(6)operator(;) -reserved(if) operator(()ident(bccomp)operator(()delimiter(')string(1.111117)delimiter(')operator(,) delimiter(')string(1.111116)delimiter(')operator(,) local_variable($precision)operator(\))operator(\)) +reserved(if) operator(()predefined(bccomp)operator(()string<delimiter(')content(1.111117)delimiter(')>operator(,) string<delimiter(')content(1.111116)delimiter(')>operator(,) local_variable($precision)operator(\))operator(\)) operator({) operator(;) comment(// ...) operator(}) @@ -549,50 +549,50 @@ comment(// ----------------------------) local_variable($wage) operator(=) integer(536)operator(;) local_variable($week) operator(=) local_variable($wage) operator(*) integer(40)operator(;) -ident(printf)operator(()delimiter(")string(One week's wage is: )string($)string(%.2f)char(\\n)delimiter(")operator(,) local_variable($week) operator(/) integer(100)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(One week's wage is: )content($)content(%.2f)char(\\n)delimiter(")>operator(,) local_variable($week) operator(/) integer(100)operator(\))operator(;) comment(// @@PLEAC@@_2.3) comment(// Preferred approach) -local_variable($rounded) operator(=) ident(round)operator(()local_variable($unrounded)operator(,) local_variable($precision)operator(\))operator(;) +local_variable($rounded) operator(=) predefined(round)operator(()local_variable($unrounded)operator(,) local_variable($precision)operator(\))operator(;) comment(// Possible alternate approach) -local_variable($format) operator(=) delimiter(')string(%[width].[prec]f)delimiter(')operator(;) -local_variable($rounded) operator(=) ident(sprintf)operator(()local_variable($format)operator(,) local_variable($unrounded)operator(\))operator(;) +local_variable($format) operator(=) string<delimiter(')content(%[width].[prec]f)delimiter(')>operator(;) +local_variable($rounded) operator(=) predefined(sprintf)operator(()local_variable($format)operator(,) local_variable($unrounded)operator(\))operator(;) comment(// ------------) -local_variable($a) operator(=) integer(0)float(.255)operator(;) local_variable($b) operator(=) ident(round)operator(()local_variable($a)operator(,) integer(2)operator(\))operator(;) -pre_type(echo) delimiter(")string(Unrounded: )operator({)local_variable($a)operator(})char(\\n)string(Rounded: )operator({)local_variable($b)operator(})char(\\n)delimiter(")operator(;) +local_variable($a) operator(=) float(0.255)operator(;) local_variable($b) operator(=) predefined(round)operator(()local_variable($a)operator(,) integer(2)operator(\))operator(;) +predefined(echo) string<delimiter(")content(Unrounded: )operator({)local_variable($a)operator(})char(\\n)content(Rounded: )operator({)local_variable($b)operator(})char(\\n)delimiter(")>operator(;) -local_variable($a) operator(=) integer(0)float(.255)operator(;) local_variable($b) operator(=) ident(sprintf)operator(()delimiter(')string(%.2f)delimiter(')operator(,) local_variable($a)operator(\))operator(;) -pre_type(echo) delimiter(")string(Unrounded: )operator({)local_variable($a)operator(})char(\\n)string(Rounded: )operator({)local_variable($b)operator(})char(\\n)delimiter(")operator(;) +local_variable($a) operator(=) float(0.255)operator(;) local_variable($b) operator(=) predefined(sprintf)operator(()string<delimiter(')content(%.2f)delimiter(')>operator(,) local_variable($a)operator(\))operator(;) +predefined(echo) string<delimiter(")content(Unrounded: )operator({)local_variable($a)operator(})char(\\n)content(Rounded: )operator({)local_variable($b)operator(})char(\\n)delimiter(")>operator(;) -local_variable($a) operator(=) integer(0)float(.255)operator(;) -ident(printf)operator(()delimiter(")string(Unrounded: %.f)char(\\n)string(Rounded: %.2f)char(\\n)delimiter(")operator(,) local_variable($a)operator(,) local_variable($a)operator(\))operator(;) +local_variable($a) operator(=) float(0.255)operator(;) +predefined(printf)operator(()string<delimiter(")content(Unrounded: %.f)char(\\n)content(Rounded: %.2f)char(\\n)delimiter(")>operator(,) local_variable($a)operator(,) local_variable($a)operator(\))operator(;) comment(// ----------------------------) -pre_type(echo) delimiter(")string(number)char(\\t)string(int)char(\\t)string(floor)char(\\t)string(ceil)char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(number)char(\\t)content(int)char(\\t)content(floor)char(\\t)content(ceil)char(\\n)delimiter(")>operator(;) -reserved(foreach)operator(()pre_type(array)operator(()integer(3)float(.3)operator(,) integer(3)float(.5)operator(,) integer(3)float(.7)operator(,) integer(-3)float(.3)operator(\)) reserved(as) local_variable($number)operator(\)) +reserved(foreach)operator(()predefined(array)operator(()float(3.3)operator(,) float(3.5)operator(,) float(3.7)operator(,) operator(-)float(3.3)operator(\)) reserved(as) local_variable($number)operator(\)) operator({) - ident(printf)operator(()delimiter(")string(%.1f)char(\\t)string(%.1f)char(\\t)string(%.1f)char(\\t)string(%.1f)char(\\n)delimiter(")operator(,) local_variable($number)operator(,) operator(()ident(int)operator(\)) local_variable($number)operator(,) ident(floor)operator(()local_variable($number)operator(\))operator(,) ident(ceil)operator(()local_variable($number)operator(\))operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(%.1f)char(\\t)content(%.1f)char(\\t)content(%.1f)char(\\t)content(%.1f)char(\\n)delimiter(")>operator(,) local_variable($number)operator(,) operator(()pre_type(int)operator(\)) local_variable($number)operator(,) predefined(floor)operator(()local_variable($number)operator(\))operator(,) predefined(ceil)operator(()local_variable($number)operator(\))operator(\))operator(;) operator(}) comment(// @@PLEAC@@_2.4) comment(// PHP offers the 'bindec' and 'decbin' functions to converting between binary and decimal) -local_variable($num) operator(=) ident(bindec)operator(()delimiter(')string(0110110)delimiter(')operator(\))operator(;) +local_variable($num) operator(=) predefined(bindec)operator(()string<delimiter(')content(0110110)delimiter(')>operator(\))operator(;) -local_variable($binstr) operator(=) ident(decbin)operator(()integer(54)operator(\))operator(;) +local_variable($binstr) operator(=) predefined(decbin)operator(()integer(54)operator(\))operator(;) comment(// @@PLEAC@@_2.5) -reserved(foreach) operator(()ident(range)operator(()local_variable($X)operator(,) local_variable($Y)operator(\)) reserved(as) local_variable($i)operator(\)) +reserved(foreach) operator(()predefined(range)operator(()local_variable($X)operator(,) local_variable($Y)operator(\)) reserved(as) local_variable($i)operator(\)) operator({) operator(;) comment(// ...) operator(}) -reserved(foreach) operator(()ident(range)operator(()local_variable($X)operator(,) local_variable($Y)operator(,) integer(7)operator(\)) reserved(as) local_variable($i)operator(\)) +reserved(foreach) operator(()predefined(range)operator(()local_variable($X)operator(,) local_variable($Y)operator(,) integer(7)operator(\)) reserved(as) local_variable($i)operator(\)) operator({) operator(;) comment(// ...) operator(}) @@ -609,9 +609,9 @@ operator(}) comment(// ----------------------------) -pre_type(echo) delimiter(')string(Infancy is:)delimiter(')operator(;) reserved(foreach)operator(()ident(range)operator(()integer(0)operator(,) integer(2)operator(\)) reserved(as) local_variable($i)operator(\)) pre_type(echo) delimiter(")string( )operator({)local_variable($i)operator(})char(\\n)delimiter(")operator(;) -pre_type(echo) delimiter(')string(Toddling is:)delimiter(')operator(;) reserved(foreach)operator(()ident(range)operator(()integer(3)operator(,) integer(4)operator(\)) reserved(as) local_variable($i)operator(\)) pre_type(echo) delimiter(")string( )operator({)local_variable($i)operator(})char(\\n)delimiter(")operator(;) -pre_type(echo) delimiter(')string(Childhood is:)delimiter(')operator(;) reserved(foreach)operator(()ident(range)operator(()integer(5)operator(,) integer(12)operator(\)) reserved(as) local_variable($i)operator(\)) pre_type(echo) delimiter(")string( )operator({)local_variable($i)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(')content(Infancy is:)delimiter(')>operator(;) reserved(foreach)operator(()predefined(range)operator(()integer(0)operator(,) integer(2)operator(\)) reserved(as) local_variable($i)operator(\)) predefined(echo) string<delimiter(")content( )operator({)local_variable($i)operator(})char(\\n)delimiter(")>operator(;) +predefined(echo) string<delimiter(')content(Toddling is:)delimiter(')>operator(;) reserved(foreach)operator(()predefined(range)operator(()integer(3)operator(,) integer(4)operator(\)) reserved(as) local_variable($i)operator(\)) predefined(echo) string<delimiter(")content( )operator({)local_variable($i)operator(})char(\\n)delimiter(")>operator(;) +predefined(echo) string<delimiter(')content(Childhood is:)delimiter(')>operator(;) reserved(foreach)operator(()predefined(range)operator(()integer(5)operator(,) integer(12)operator(\)) reserved(as) local_variable($i)operator(\)) predefined(echo) string<delimiter(")content( )operator({)local_variable($i)operator(})char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_2.6) comment(// PHP offers no native support for Roman Numerals. However, a 'Numbers_Roman' class) @@ -629,27 +629,27 @@ local_variable($roman_fifteen) operator(=) constant(Numbers_Roman)operator(::)id local_variable($arabic_fifteen) operator(=) constant(Numbers_Roman)operator(::)ident(toNumber)operator(()local_variable($roman_fifteen)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Roman for fifteen is: %s)char(\\n)delimiter(")operator(,) local_variable($roman_fifteen)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Arabic for fifteen is: %d)char(\\n)delimiter(")operator(,) local_variable($arabic_fifteen)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Roman for fifteen is: %s)char(\\n)delimiter(")>operator(,) local_variable($roman_fifteen)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Arabic for fifteen is: %d)char(\\n)delimiter(")>operator(,) local_variable($arabic_fifteen)operator(\))operator(;) comment(// @@PLEAC@@_2.7) comment(// Techniques used here simply mirror Perl examples, and are not an endorsement) comment(// of any particular RNG technique) comment(// In PHP do this ...) -local_variable($random) operator(=) ident(rand)operator(()local_variable($lowerbound)operator(,) local_variable($upperbound)operator(\))operator(;) -local_variable($random) operator(=) ident(rand)operator(()local_variable($x)operator(,) local_variable($y)operator(\))operator(;) +local_variable($random) operator(=) predefined(rand)operator(()local_variable($lowerbound)operator(,) local_variable($upperbound)operator(\))operator(;) +local_variable($random) operator(=) predefined(rand)operator(()local_variable($x)operator(,) local_variable($y)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(make_password)operator(()local_variable($chars)operator(,) local_variable($reqlen)operator(\)) +reserved(function) ident(make_password)operator(()local_variable($chars)operator(,) local_variable($reqlen)operator(\)) operator({) - local_variable($len) operator(=) ident(strlen)operator(()local_variable($chars)operator(\))operator(;) - reserved(for) operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) local_variable($reqlen)operator(;) local_variable($i)operator(++)operator(\)) local_variable($password) operator(.)operator(=) ident(substr)operator(()local_variable($chars)operator(,) ident(rand)operator(()integer(0)operator(,) local_variable($len)operator(\))operator(,) integer(1)operator(\))operator(;) - reserved(return) local_variable($password)operator(;) + local_variable($len) operator(=) predefined(strlen)operator(()local_variable($chars)operator(\))operator(;) + reserved(for) operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) local_variable($reqlen)operator(;) local_variable($i)operator(++)operator(\)) local_variable($password) operator(.)operator(=) predefined(substr)operator(()local_variable($chars)operator(,) predefined(rand)operator(()integer(0)operator(,) local_variable($len)operator(\))operator(,) integer(1)operator(\))operator(;) + predefined(return) local_variable($password)operator(;) operator(}) -local_variable($chars) operator(=) delimiter(')string(ABCDEfghijKLMNOpqrstUVWXYz)delimiter(')operator(;) local_variable($reqlen) operator(=) integer(8)operator(;) +local_variable($chars) operator(=) string<delimiter(')content(ABCDEfghijKLMNOpqrstUVWXYz)delimiter(')>operator(;) local_variable($reqlen) operator(=) integer(8)operator(;) local_variable($password) operator(=) ident(make_password)operator(()local_variable($chars)operator(,) local_variable($reqlen)operator(\))operator(;) @@ -658,13 +658,13 @@ comment(// PHP sports a large number of C Standard Library routines including th comment(// function, used to re-seed the RNG used with calls to the 'rand' function. Thus,) comment(// as per Perl example:) -reserved(while) operator(()constant(TRUE)operator(\)) +reserved(while) operator(()reserved(TRUE)operator(\)) operator({) - local_variable($seed) operator(=) operator(()ident(int)operator(\)) ident(fgets)operator(()constant(STDIN)operator(\))operator(;) - reserved(if) operator(()operator(!)pre_type(empty)operator(()local_variable($seed)operator(\))operator(\)) reserved(break)operator(;) + local_variable($seed) operator(=) operator(()pre_type(int)operator(\)) predefined(fgets)operator(()constant(STDIN)operator(\))operator(;) + reserved(if) operator(()operator(!)predefined(empty)operator(()local_variable($seed)operator(\))operator(\)) reserved(break)operator(;) operator(}) -ident(srand)operator(()local_variable($seed)operator(\))operator(;) +predefined(srand)operator(()local_variable($seed)operator(\))operator(;) comment(// @@PLEAC@@_2.9) comment(// The above is considered - for many reasons - a poor way of seeding the RNG. PHP) @@ -676,88 +676,88 @@ comment(// unrepeatable value [like the current time in microseconds] that is mu comment(// by a large prime number, or perhaps as part of a hash [examples available in) comment(// PHP documentation for 'srand' and 'mt_srand']) -ident(mt_srand)operator(()local_variable($saved_random_value) operator(+) ident(microtime)operator(()operator(\)) operator(*) integer(1000003)operator(\))operator(;) +ident(mt_srand)operator(()local_variable($saved_random_value) operator(+) predefined(microtime)operator(()operator(\)) operator(*) integer(1000003)operator(\))operator(;) comment(// or) -ident(mt_srand)operator(()operator(()local_variable($saved_random_value) operator(+) ident(hexdec)operator(()ident(substr)operator(()ident(md5)operator(()ident(microtime)operator(()operator(\))operator(\))operator(,) integer(-8)operator(\))operator(\))operator(\)) operator(&) integer(0x7)ident(fffffff)operator(\))operator(;) +ident(mt_srand)operator(()operator(()local_variable($saved_random_value) operator(+) predefined(hexdec)operator(()predefined(substr)operator(()predefined(md5)operator(()predefined(microtime)operator(()operator(\))operator(\))operator(,) operator(-)integer(8)operator(\))operator(\))operator(\)) operator(&) integer(0x7)ident(fffffff)operator(\))operator(;) comment(// Use of 'mt_rand' together with an appropriate seeding approach should help better) comment(// approximate the generation of a 'truly random value') local_variable($truly_random_value) operator(=) ident(mt_rand)operator(()operator(\))operator(;) comment(// @@PLEAC@@_2.10) -pre_type(function) ident(random)operator(()operator(\)) operator({) reserved(return) operator(()ident(float)operator(\)) ident(rand)operator(()operator(\)) operator(/) operator(()ident(float)operator(\)) ident(getrandmax)operator(()operator(\))operator(;) operator(}) +reserved(function) ident(random)operator(()operator(\)) operator({) predefined(return) operator(()pre_type(float)operator(\)) predefined(rand)operator(()operator(\)) operator(/) operator(()pre_type(float)operator(\)) predefined(getrandmax)operator(()operator(\))operator(;) operator(}) -pre_type(function) ident(gaussian_rand)operator(()operator(\)) +reserved(function) ident(gaussian_rand)operator(()operator(\)) operator({) - local_variable($u1) operator(=) integer(0)float(.0)operator(;) local_variable($u2) operator(=) integer(0)float(.0)operator(;) local_variable($g1) operator(=) integer(0)float(.0)operator(;) local_variable($g2) operator(=) integer(0)float(.0)operator(;) local_variable($w) operator(=) integer(0)float(.0)operator(;) + local_variable($u1) operator(=) float(0.0)operator(;) local_variable($u2) operator(=) float(0.0)operator(;) local_variable($g1) operator(=) float(0.0)operator(;) local_variable($g2) operator(=) float(0.0)operator(;) local_variable($w) operator(=) float(0.0)operator(;) reserved(do) operator({) - local_variable($u1) operator(=) integer(2)float(.0) operator(*) ident(random)operator(()operator(\)) operator(-) integer(1)float(.0)operator(;) local_variable($u2) operator(=) integer(2)float(.0) operator(*) ident(random)operator(()operator(\)) operator(-) integer(1)float(.0)operator(;) + local_variable($u1) operator(=) float(2.0) operator(*) ident(random)operator(()operator(\)) operator(-) float(1.0)operator(;) local_variable($u2) operator(=) float(2.0) operator(*) ident(random)operator(()operator(\)) operator(-) float(1.0)operator(;) local_variable($w) operator(=) local_variable($u1) operator(*) local_variable($u1) operator(+) local_variable($u2) operator(*) local_variable($u2)operator(;) - operator(}) reserved(while) operator(()local_variable($w) operator(>) integer(1)float(.0)operator(\))operator(;) + operator(}) reserved(while) operator(()local_variable($w) operator(>) float(1.0)operator(\))operator(;) - local_variable($w) operator(=) ident(sqrt)operator(()operator(()integer(-2)float(.0) operator(*) ident(log)operator(()local_variable($w)operator(\))operator(\)) operator(/) local_variable($w)operator(\))operator(;) local_variable($g2) operator(=) local_variable($u1) operator(*) local_variable($w)operator(;) local_variable($g1) operator(=) local_variable($u2) operator(*) local_variable($w)operator(;) + local_variable($w) operator(=) predefined(sqrt)operator(()operator(()operator(-)float(2.0) operator(*) predefined(log)operator(()local_variable($w)operator(\))operator(\)) operator(/) local_variable($w)operator(\))operator(;) local_variable($g2) operator(=) local_variable($u1) operator(*) local_variable($w)operator(;) local_variable($g1) operator(=) local_variable($u2) operator(*) local_variable($w)operator(;) - reserved(return) local_variable($g1)operator(;) + predefined(return) local_variable($g1)operator(;) operator(}) comment(// ------------) -local_variable($mean) operator(=) integer(25)float(.0)operator(;) local_variable($sdev) operator(=) integer(2)float(.0)operator(;) +local_variable($mean) operator(=) float(25.0)operator(;) local_variable($sdev) operator(=) float(2.0)operator(;) local_variable($salary) operator(=) ident(gaussian_rand)operator(()operator(\)) operator(*) local_variable($mean) operator(+) local_variable($sdev)operator(;) -ident(printf)operator(()delimiter(")string(You have been hired at: %.2f)char(\\n)delimiter(")operator(,) local_variable($salary)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(You have been hired at: %.2f)char(\\n)delimiter(")>operator(,) local_variable($salary)operator(\))operator(;) comment(// @@PLEAC@@_2.11) comment(// 'deg2rad' and 'rad2deg' are actually PHP built-ins, but here is how you might implement) operator(/) ident(them) reserved(if) ident(needed) -pre_type(function) ident(deg2rad_)operator(()local_variable($deg)operator(\)) operator({) reserved(return) operator(()local_variable($deg) operator(/) integer(180)float(.0)operator(\)) operator(*) constant(M_PI)operator(;) operator(}) -pre_type(function) ident(rad2deg_)operator(()local_variable($rad)operator(\)) operator({) reserved(return) operator(()local_variable($rad) operator(/) constant(M_PI)operator(\)) operator(*) integer(180)float(.0)operator(;) operator(}) +reserved(function) ident(deg2rad_)operator(()local_variable($deg)operator(\)) operator({) predefined(return) operator(()local_variable($deg) operator(/) float(180.0)operator(\)) operator(*) constant(M_PI)operator(;) operator(}) +reserved(function) ident(rad2deg_)operator(()local_variable($rad)operator(\)) operator({) predefined(return) operator(()local_variable($rad) operator(/) constant(M_PI)operator(\)) operator(*) float(180.0)operator(;) operator(}) comment(// ------------) -ident(printf)operator(()delimiter(")string(%f)char(\\n)delimiter(")operator(,) ident(deg2rad_)operator(()integer(180)float(.0)operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%f)char(\\n)delimiter(")operator(,) ident(deg2rad)operator(()integer(180)float(.0)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%f)char(\\n)delimiter(")>operator(,) ident(deg2rad_)operator(()float(180.0)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%f)char(\\n)delimiter(")>operator(,) predefined(deg2rad)operator(()float(180.0)operator(\))operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(degree_sin)operator(()local_variable($deg)operator(\)) operator({) reserved(return) ident(sin)operator(()ident(deg2rad)operator(()local_variable($deg)operator(\))operator(\))operator(;) operator(}) +reserved(function) ident(degree_sin)operator(()local_variable($deg)operator(\)) operator({) predefined(return) predefined(sin)operator(()predefined(deg2rad)operator(()local_variable($deg)operator(\))operator(\))operator(;) operator(}) comment(// ------------) -local_variable($rad) operator(=) ident(deg2rad)operator(()integer(380)float(.0)operator(\))operator(;) +local_variable($rad) operator(=) predefined(deg2rad)operator(()float(380.0)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%f)char(\\n)delimiter(")operator(,) ident(sin)operator(()local_variable($rad)operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%f)char(\\n)delimiter(")operator(,) ident(degree_sin)operator(()integer(380)float(.0)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%f)char(\\n)delimiter(")>operator(,) predefined(sin)operator(()local_variable($rad)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%f)char(\\n)delimiter(")>operator(,) ident(degree_sin)operator(()float(380.0)operator(\))operator(\))operator(;) comment(// @@PLEAC@@_2.12) -pre_type(function) ident(my_tan)operator(()local_variable($theta)operator(\)) operator({) reserved(return) ident(sin)operator(()local_variable($theta)operator(\)) operator(/) ident(cos)operator(()local_variable($theta)operator(\))operator(;) operator(}) +reserved(function) ident(my_tan)operator(()local_variable($theta)operator(\)) operator({) predefined(return) predefined(sin)operator(()local_variable($theta)operator(\)) operator(/) predefined(cos)operator(()local_variable($theta)operator(\))operator(;) operator(}) comment(// ------------) -local_variable($theta) operator(=) integer(3)float(.7)operator(;) +local_variable($theta) operator(=) float(3.7)operator(;) -ident(printf)operator(()delimiter(")string(%f)char(\\n)delimiter(")operator(,) ident(my_tan)operator(()local_variable($theta)operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%f)char(\\n)delimiter(")operator(,) ident(tan)operator(()local_variable($theta)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%f)char(\\n)delimiter(")>operator(,) ident(my_tan)operator(()local_variable($theta)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%f)char(\\n)delimiter(")>operator(,) predefined(tan)operator(()local_variable($theta)operator(\))operator(\))operator(;) comment(// @@PLEAC@@_2.13) -local_variable($value) operator(=) integer(100)float(.0)operator(;) +local_variable($value) operator(=) float(100.0)operator(;) -local_variable($log_e) operator(=) ident(log)operator(()local_variable($value)operator(\))operator(;) -local_variable($log_10) operator(=) ident(log10)operator(()local_variable($value)operator(\))operator(;) +local_variable($log_e) operator(=) predefined(log)operator(()local_variable($value)operator(\))operator(;) +local_variable($log_10) operator(=) predefined(log10)operator(()local_variable($value)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(log_base)operator(()local_variable($base)operator(,) local_variable($value)operator(\)) operator({) reserved(return) ident(log)operator(()local_variable($value)operator(\)) operator(/) ident(log)operator(()local_variable($base)operator(\))operator(;) operator(}) +reserved(function) ident(log_base)operator(()local_variable($base)operator(,) local_variable($value)operator(\)) operator({) predefined(return) predefined(log)operator(()local_variable($value)operator(\)) operator(/) predefined(log)operator(()local_variable($base)operator(\))operator(;) operator(}) comment(// ------------) -local_variable($answer) operator(=) ident(log_base)operator(()integer(10)float(.0)operator(,) integer(10000)float(.0)operator(\))operator(;) +local_variable($answer) operator(=) ident(log_base)operator(()float(10.0)operator(,) float(10000.0)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(log(10, 10,000\) = %f)char(\\n)delimiter(")operator(,) local_variable($answer)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(log(10, 10,000\) = %f)char(\\n)delimiter(")>operator(,) local_variable($answer)operator(\))operator(;) comment(// @@PLEAC@@_2.14) comment(// PHP offers no native support for matrices. However, a 'Math_Matrix' class) @@ -766,11 +766,11 @@ comment(// Note the following 'include' directives are required:) comment(//) comment(// include_once('Math/Matrix.php'\);) -local_variable($a) operator(=) pre_type(new) constant(Math_Matrix)operator(()pre_type(array)operator(()pre_type(array)operator(()integer(3)operator(,) integer(2)operator(,) integer(3)operator(\))operator(,) pre_type(array)operator(()integer(5)operator(,) integer(9)operator(,) integer(8)operator(\))operator(\))operator(\))operator(;) -local_variable($b) operator(=) pre_type(new) constant(Math_Matrix)operator(()pre_type(array)operator(()pre_type(array)operator(()integer(4)operator(,) integer(7)operator(\))operator(,) pre_type(array)operator(()integer(9)operator(,) integer(3)operator(\))operator(,) pre_type(array)operator(()integer(8)operator(,) integer(1)operator(\))operator(\))operator(\))operator(;) +local_variable($a) operator(=) reserved(new) constant(Math_Matrix)operator(()predefined(array)operator(()predefined(array)operator(()integer(3)operator(,) integer(2)operator(,) integer(3)operator(\))operator(,) predefined(array)operator(()integer(5)operator(,) integer(9)operator(,) integer(8)operator(\))operator(\))operator(\))operator(;) +local_variable($b) operator(=) reserved(new) constant(Math_Matrix)operator(()predefined(array)operator(()predefined(array)operator(()integer(4)operator(,) integer(7)operator(\))operator(,) predefined(array)operator(()integer(9)operator(,) integer(3)operator(\))operator(,) predefined(array)operator(()integer(8)operator(,) integer(1)operator(\))operator(\))operator(\))operator(;) -pre_type(echo) local_variable($a)operator(->)ident(toString)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) local_variable($b)operator(->)ident(toString)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) local_variable($a)operator(->)ident(toString)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) local_variable($b)operator(->)ident(toString)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// NOTE: When I installed this package I had to rename the 'clone' method else) comment(// it would not load, so I chose to rename it to 'clone_', and this usage is) @@ -779,7 +779,7 @@ comment(// shown below. This bug may well be fixed by the time you obtain this p local_variable($c) operator(=) local_variable($a)operator(->)ident(clone_)operator(()operator(\))operator(;) local_variable($c)operator(->)ident(multiply)operator(()local_variable($b)operator(\))operator(;) -pre_type(echo) local_variable($c)operator(->)ident(toString)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) local_variable($c)operator(->)ident(toString)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_2.15) comment(// PHP offers no native support for complex numbers. However, a 'Math_Complex' class) @@ -790,19 +790,19 @@ comment(// include_once('Math/Complex.php'\);) comment(// include_once('Math/TrigOp.php'\);) comment(// include_once('Math/ComplexOp.php'\);) -local_variable($a) operator(=) pre_type(new) constant(Math_Complex)operator(()integer(3)operator(,) integer(5)operator(\))operator(;) -local_variable($b) operator(=) pre_type(new) constant(Math_Complex)operator(()integer(2)operator(,) integer(-2)operator(\))operator(;) +local_variable($a) operator(=) reserved(new) constant(Math_Complex)operator(()integer(3)operator(,) integer(5)operator(\))operator(;) +local_variable($b) operator(=) reserved(new) constant(Math_Complex)operator(()integer(2)operator(,) operator(-)integer(2)operator(\))operator(;) local_variable($c) operator(=) constant(Math_ComplexOp)operator(::)ident(mult)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(;) -pre_type(echo) local_variable($c)operator(->)ident(toString)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) local_variable($c)operator(->)ident(toString)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ----------------------------) -local_variable($d) operator(=) pre_type(new) constant(Math_Complex)operator(()integer(3)operator(,) integer(4)operator(\))operator(;) -local_variable($r) operator(=) constant(Math_ComplexOp)operator(::)ident(sqrt)operator(()local_variable($d)operator(\))operator(;) +local_variable($d) operator(=) reserved(new) constant(Math_Complex)operator(()integer(3)operator(,) integer(4)operator(\))operator(;) +local_variable($r) operator(=) constant(Math_ComplexOp)operator(::)predefined(sqrt)operator(()local_variable($d)operator(\))operator(;) -pre_type(echo) local_variable($r)operator(->)ident(toString)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) local_variable($r)operator(->)ident(toString)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_2.16) comment(// Like C, PHP supports decimal-alternate notations. Thus, for example, the integer) @@ -814,95 +814,95 @@ comment(//) comment(// For effecting such conversions using strings there is 'sprintf' and 'sscanf'.) local_variable($dec) operator(=) integer(867)operator(;) -local_variable($hex) operator(=) ident(sprintf)operator(()delimiter(')string(%x)delimiter(')operator(,) local_variable($dec)operator(\))operator(;) -local_variable($oct) operator(=) ident(sprintf)operator(()delimiter(')string(%o)delimiter(')operator(,) local_variable($dec)operator(\))operator(;) +local_variable($hex) operator(=) predefined(sprintf)operator(()string<delimiter(')content(%x)delimiter(')>operator(,) local_variable($dec)operator(\))operator(;) +local_variable($oct) operator(=) predefined(sprintf)operator(()string<delimiter(')content(%o)delimiter(')>operator(,) local_variable($dec)operator(\))operator(;) comment(// ------------) local_variable($dec) operator(=) integer(0)operator(;) -local_variable($hex) operator(=) delimiter(')string(363)delimiter(')operator(;) +local_variable($hex) operator(=) string<delimiter(')content(363)delimiter(')>operator(;) -ident(sscanf)operator(()local_variable($hex)operator(,) delimiter(')string(%x)delimiter(')operator(,) local_variable($dec)operator(\))operator(;) +predefined(sscanf)operator(()local_variable($hex)operator(,) string<delimiter(')content(%x)delimiter(')>operator(,) local_variable($dec)operator(\))operator(;) comment(// ------------) local_variable($dec) operator(=) integer(0)operator(;) -local_variable($oct) operator(=) delimiter(')string(1543)delimiter(')operator(;) +local_variable($oct) operator(=) string<delimiter(')content(1543)delimiter(')>operator(;) -ident(sscanf)operator(()local_variable($oct)operator(,) delimiter(')string(%o)delimiter(')operator(,) local_variable($dec)operator(\))operator(;) +predefined(sscanf)operator(()local_variable($oct)operator(,) string<delimiter(')content(%o)delimiter(')>operator(,) local_variable($dec)operator(\))operator(;) comment(// ----------------------------) local_variable($number) operator(=) integer(0)operator(;) -ident(printf)operator(()delimiter(')string(Gimme a number in decimal, octal, or hex: )delimiter(')operator(\))operator(;) -ident(sscanf)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(,) delimiter(')string(%D)delimiter(')operator(,) local_variable($number)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(')content(Gimme a number in decimal, octal, or hex: )delimiter(')>operator(\))operator(;) +predefined(sscanf)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(,) string<delimiter(')content(%D)delimiter(')>operator(,) local_variable($number)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%d %x %o)char(\\n)delimiter(")operator(,) local_variable($number)operator(,) local_variable($number)operator(,) local_variable($number)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%d %x %o)char(\\n)delimiter(")>operator(,) local_variable($number)operator(,) local_variable($number)operator(,) local_variable($number)operator(\))operator(;) comment(// @@PLEAC@@_2.17) comment(// PHP offers the 'number_format' built-in function to, among many other format tasks, ) comment(// commify numbers. Perl-compatible [as well as extended] regexes are also available) -pre_type(function) ident(commify_series)operator(()local_variable($s)operator(\)) operator({) reserved(return) ident(number_format)operator(()local_variable($s)operator(,) integer(0)operator(,) delimiter(')delimiter(')operator(,) delimiter(')string(,)delimiter(')operator(\))operator(;) operator(}) +reserved(function) ident(commify_series)operator(()local_variable($s)operator(\)) operator({) predefined(return) predefined(number_format)operator(()local_variable($s)operator(,) integer(0)operator(,) string<delimiter(')delimiter(')>operator(,) string<delimiter(')content(,)delimiter(')>operator(\))operator(;) operator(}) comment(// ------------) local_variable($hits) operator(=) integer(3456789)operator(;) -ident(printf)operator(()delimiter(")string(Your website received %s accesses last month)char(\\n)delimiter(")operator(,) ident(commify_series)operator(()local_variable($hits)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Your website received %s accesses last month)char(\\n)delimiter(")>operator(,) ident(commify_series)operator(()local_variable($hits)operator(\))operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(commify)operator(()local_variable($s)operator(\)) +reserved(function) ident(commify)operator(()local_variable($s)operator(\)) operator({) - reserved(return) ident(strrev)operator(()ident(preg_replace)operator(()delimiter(')string(/()string(\\)string(d)string(\\)string(d)string(\\)string(d\)(?=)string(\\)string(d\)(?!)string(\\)string(d*)string(\\)string(.\)/)delimiter(')operator(,) delimiter(')string(${1},)delimiter(')operator(,) ident(strrev)operator(()local_variable($s)operator(\))operator(\))operator(\))operator(;) + predefined(return) predefined(strrev)operator(()predefined(preg_replace)operator(()string<delimiter(')content(/()content(\\d)content(\\d)content(\\d)content(\)(?=)content(\\d)content(\)(?!)content(\\d)content(*)content(\\.)content(\)/)delimiter(')>operator(,) string<delimiter(')content(${1},)delimiter(')>operator(,) predefined(strrev)operator(()local_variable($s)operator(\))operator(\))operator(\))operator(;) operator(}) comment(// ------------) local_variable($hits) operator(=) integer(3456789)operator(;) -pre_type(echo) ident(commify)operator(()ident(sprintf)operator(()delimiter(")string(Your website received %d accesses last month)char(\\n)delimiter(")operator(,) local_variable($hits)operator(\))operator(\))operator(;) +predefined(echo) ident(commify)operator(()predefined(sprintf)operator(()string<delimiter(")content(Your website received %d accesses last month)char(\\n)delimiter(")>operator(,) local_variable($hits)operator(\))operator(\))operator(;) comment(// @@PLEAC@@_2.18) -pre_type(function) ident(pluralise)operator(()local_variable($value)operator(,) local_variable($root)operator(,) local_variable($singular)operator(=)delimiter(')delimiter(') operator(,) local_variable($plural)operator(=)delimiter(')string(s)delimiter(')operator(\)) +reserved(function) ident(pluralise)operator(()local_variable($value)operator(,) local_variable($root)operator(,) local_variable($singular)operator(=)string<delimiter(')delimiter(')> operator(,) local_variable($plural)operator(=)string<delimiter(')content(s)delimiter(')>operator(\)) operator({) - reserved(return) local_variable($root) operator(.) operator(()operator(()local_variable($value) operator(>) integer(1)operator(\)) operator(?) local_variable($plural) operator(:) local_variable($singular)operator(\))operator(;) + predefined(return) local_variable($root) operator(.) operator(()operator(()local_variable($value) operator(>) integer(1)operator(\)) operator(?) local_variable($plural) operator(:) local_variable($singular)operator(\))operator(;) operator(}) comment(// ------------) local_variable($duration) operator(=) integer(1)operator(;) -ident(printf)operator(()delimiter(")string(It took %d %s)char(\\n)delimiter(")operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) delimiter(')string(hour)delimiter(')operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%d %s %s enough.)char(\\n)delimiter(")operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) delimiter(')string(hour)delimiter(')operator(\))operator(,) - ident(pluralise)operator(()local_variable($duration)operator(,) delimiter(')delimiter(')operator(,) delimiter(')string(is)delimiter(')operator(,) delimiter(')string(are)delimiter(')operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(It took %d %s)char(\\n)delimiter(")>operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) string<delimiter(')content(hour)delimiter(')>operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%d %s %s enough.)char(\\n)delimiter(")>operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) string<delimiter(')content(hour)delimiter(')>operator(\))operator(,) + ident(pluralise)operator(()local_variable($duration)operator(,) string<delimiter(')delimiter(')>operator(,) string<delimiter(')content(is)delimiter(')>operator(,) string<delimiter(')content(are)delimiter(')>operator(\))operator(\))operator(;) local_variable($duration) operator(=) integer(5)operator(;) -ident(printf)operator(()delimiter(")string(It took %d %s)char(\\n)delimiter(")operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) delimiter(')string(hour)delimiter(')operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(%d %s %s enough.)char(\\n)delimiter(")operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) delimiter(')string(hour)delimiter(')operator(\))operator(,) - ident(pluralise)operator(()local_variable($duration)operator(,) delimiter(')delimiter(')operator(,) delimiter(')string(is)delimiter(')operator(,) delimiter(')string(are)delimiter(')operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(It took %d %s)char(\\n)delimiter(")>operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) string<delimiter(')content(hour)delimiter(')>operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%d %s %s enough.)char(\\n)delimiter(")>operator(,) local_variable($duration)operator(,) ident(pluralise)operator(()local_variable($duration)operator(,) string<delimiter(')content(hour)delimiter(')>operator(\))operator(,) + ident(pluralise)operator(()local_variable($duration)operator(,) string<delimiter(')delimiter(')>operator(,) string<delimiter(')content(is)delimiter(')>operator(,) string<delimiter(')content(are)delimiter(')>operator(\))operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(plural)operator(()local_variable($singular)operator(\)) +reserved(function) ident(plural)operator(()local_variable($singular)operator(\)) operator({) - local_variable($s2p) operator(=) pre_type(array)operator(()delimiter(')string(/ss$/)delimiter(') operator(=>) delimiter(')string(sses)delimiter(')operator(,) delimiter(')string(/([psc]h\)$/)delimiter(') operator(=>) delimiter(')string(${1}es)delimiter(')operator(,) delimiter(')string(/z$/)delimiter(') operator(=>) delimiter(')string(zes)delimiter(')operator(,) - delimiter(')string(/ff$/)delimiter(') operator(=>) delimiter(')string(ffs)delimiter(')operator(,) delimiter(')string(/f$/)delimiter(') operator(=>) delimiter(')string(ves)delimiter(')operator(,) delimiter(')string(/ey$/)delimiter(') operator(=>) delimiter(')string(eys)delimiter(')operator(,) - delimiter(')string(/y$/)delimiter(') operator(=>) delimiter(')string(ies)delimiter(')operator(,) delimiter(')string(/ix$/)delimiter(') operator(=>) delimiter(')string(ices)delimiter(')operator(,) delimiter(')string(/([sx]\)$/)delimiter(') operator(=>) delimiter(')string($1es)delimiter(')operator(,) - delimiter(')string($)delimiter(') operator(=>) delimiter(')string(s)delimiter(')operator(\))operator(;) + local_variable($s2p) operator(=) predefined(array)operator(()string<delimiter(')content(/ss$/)delimiter(')> operator(=>) string<delimiter(')content(sses)delimiter(')>operator(,) string<delimiter(')content(/([psc]h\)$/)delimiter(')> operator(=>) string<delimiter(')content(${1}es)delimiter(')>operator(,) string<delimiter(')content(/z$/)delimiter(')> operator(=>) string<delimiter(')content(zes)delimiter(')>operator(,) + string<delimiter(')content(/ff$/)delimiter(')> operator(=>) string<delimiter(')content(ffs)delimiter(')>operator(,) string<delimiter(')content(/f$/)delimiter(')> operator(=>) string<delimiter(')content(ves)delimiter(')>operator(,) string<delimiter(')content(/ey$/)delimiter(')> operator(=>) string<delimiter(')content(eys)delimiter(')>operator(,) + string<delimiter(')content(/y$/)delimiter(')> operator(=>) string<delimiter(')content(ies)delimiter(')>operator(,) string<delimiter(')content(/ix$/)delimiter(')> operator(=>) string<delimiter(')content(ices)delimiter(')>operator(,) string<delimiter(')content(/([sx]\)$/)delimiter(')> operator(=>) string<delimiter(')content($1es)delimiter(')>operator(,) + string<delimiter(')content($)delimiter(')> operator(=>) string<delimiter(')content(s)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($s2p) reserved(as) local_variable($s) operator(=>) local_variable($p)operator(\)) operator({) - reserved(if) operator(()ident(preg_match)operator(()local_variable($s)operator(,) local_variable($singular)operator(\))operator(\)) reserved(return) ident(preg_replace)operator(()local_variable($s)operator(,) local_variable($p)operator(,) local_variable($singular)operator(\))operator(;) + reserved(if) operator(()predefined(preg_match)operator(()local_variable($s)operator(,) local_variable($singular)operator(\))operator(\)) predefined(return) predefined(preg_replace)operator(()local_variable($s)operator(,) local_variable($p)operator(,) local_variable($singular)operator(\))operator(;) operator(}) operator(}) comment(// ------------) -reserved(foreach)operator(()pre_type(array)operator(()delimiter(')string(mess)delimiter(')operator(,) delimiter(')string(index)delimiter(')operator(,) delimiter(')string(leaf)delimiter(')operator(,) delimiter(')string(puppy)delimiter(')operator(\)) reserved(as) local_variable($word)operator(\)) +reserved(foreach)operator(()predefined(array)operator(()string<delimiter(')content(mess)delimiter(')>operator(,) string<delimiter(')content(index)delimiter(')>operator(,) string<delimiter(')content(leaf)delimiter(')>operator(,) string<delimiter(')content(puppy)delimiter(')>operator(\)) reserved(as) local_variable($word)operator(\)) operator({) - ident(printf)operator(()delimiter(")string(%6s -> %s)char(\\n)delimiter(")operator(,) local_variable($word)operator(,) ident(plural)operator(()local_variable($word)operator(\))operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(%6s -> %s)char(\\n)delimiter(")>operator(,) local_variable($word)operator(,) ident(plural)operator(()local_variable($word)operator(\))operator(\))operator(;) operator(}) comment(// @@PLEAC@@_2.19) @@ -940,100 +940,100 @@ comment(// not currently shipped with PHP, no examples appear) comment(// Helper functions for performing date arithmetic ) -pre_type(function) ident(dateOffset)operator(()operator(\)) +reserved(function) ident(dateOffset)operator(()operator(\)) operator({) - pre_type(static) local_variable($tbl) operator(=) pre_type(array)operator(()delimiter(')string(sec)delimiter(') operator(=>) integer(1)operator(,) delimiter(')string(min)delimiter(') operator(=>) integer(60)operator(,) delimiter(')string(hou)delimiter(') operator(=>) integer(3600)operator(,) delimiter(')string(day)delimiter(') operator(=>) integer(86400)operator(,) delimiter(')string(wee)delimiter(') operator(=>) integer(604800)operator(\))operator(;) + reserved(static) local_variable($tbl) operator(=) predefined(array)operator(()string<delimiter(')content(sec)delimiter(')> operator(=>) integer(1)operator(,) string<delimiter(')content(min)delimiter(')> operator(=>) integer(60)operator(,) string<delimiter(')content(hou)delimiter(')> operator(=>) integer(3600)operator(,) string<delimiter(')content(day)delimiter(')> operator(=>) integer(86400)operator(,) string<delimiter(')content(wee)delimiter(')> operator(=>) integer(604800)operator(\))operator(;) local_variable($delta) operator(=) integer(0)operator(;) - reserved(foreach) operator(()ident(func_get_args)operator(()operator(\)) reserved(as) local_variable($arg)operator(\)) + reserved(foreach) operator(()predefined(func_get_args)operator(()operator(\)) reserved(as) local_variable($arg)operator(\)) operator({) - local_variable($kv) operator(=) ident(explode)operator(()delimiter(')string(=)delimiter(')operator(,) local_variable($arg)operator(\))operator(;) - local_variable($delta) operator(+)operator(=) local_variable($kv)operator([)integer(1)operator(]) operator(*) local_variable($tbl)operator([)ident(strtolower)operator(()ident(substr)operator(()local_variable($kv)operator([)integer(0)operator(])operator(,) integer(0)operator(,) integer(3)operator(\))operator(\))operator(])operator(;) + local_variable($kv) operator(=) predefined(explode)operator(()string<delimiter(')content(=)delimiter(')>operator(,) local_variable($arg)operator(\))operator(;) + local_variable($delta) operator(+)operator(=) local_variable($kv)operator([)integer(1)operator(]) operator(*) local_variable($tbl)operator([)predefined(strtolower)operator(()predefined(substr)operator(()local_variable($kv)operator([)integer(0)operator(])operator(,) integer(0)operator(,) integer(3)operator(\))operator(\))operator(])operator(;) operator(}) - reserved(return) local_variable($delta)operator(;) + predefined(return) local_variable($delta)operator(;) operator(}) -pre_type(function) ident(dateInterval)operator(()local_variable($intvltype)operator(,) local_variable($timevalue)operator(\)) +reserved(function) ident(dateInterval)operator(()local_variable($intvltype)operator(,) local_variable($timevalue)operator(\)) operator({) - pre_type(static) local_variable($tbl) operator(=) pre_type(array)operator(()delimiter(')string(sec)delimiter(') operator(=>) integer(1)operator(,) delimiter(')string(min)delimiter(') operator(=>) integer(60)operator(,) delimiter(')string(hou)delimiter(') operator(=>) integer(3600)operator(,) delimiter(')string(day)delimiter(') operator(=>) integer(86400)operator(,) delimiter(')string(wee)delimiter(') operator(=>) integer(604800)operator(\))operator(;) - reserved(return) operator(()ident(int)operator(\)) ident(round)operator(()local_variable($timevalue) operator(/) local_variable($tbl)operator([)ident(strtolower)operator(()ident(substr)operator(()local_variable($intvltype)operator(,) integer(0)operator(,) integer(3)operator(\))operator(\))operator(])operator(\))operator(;) + reserved(static) local_variable($tbl) operator(=) predefined(array)operator(()string<delimiter(')content(sec)delimiter(')> operator(=>) integer(1)operator(,) string<delimiter(')content(min)delimiter(')> operator(=>) integer(60)operator(,) string<delimiter(')content(hou)delimiter(')> operator(=>) integer(3600)operator(,) string<delimiter(')content(day)delimiter(')> operator(=>) integer(86400)operator(,) string<delimiter(')content(wee)delimiter(')> operator(=>) integer(604800)operator(\))operator(;) + predefined(return) operator(()pre_type(int)operator(\)) predefined(round)operator(()local_variable($timevalue) operator(/) local_variable($tbl)operator([)predefined(strtolower)operator(()predefined(substr)operator(()local_variable($intvltype)operator(,) integer(0)operator(,) integer(3)operator(\))operator(\))operator(])operator(\))operator(;) operator(}) comment(// ----------------------------) comment(// Extract indexed array from 'getdate') -local_variable($today) operator(=) ident(getdate)operator(()operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Today is day %d of the current year)char(\\n)delimiter(")operator(,) local_variable($today)operator([)delimiter(')string(yday)delimiter(')operator(])operator(\))operator(;) +local_variable($today) operator(=) predefined(getdate)operator(()operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Today is day %d of the current year)char(\\n)delimiter(")>operator(,) local_variable($today)operator([)string<delimiter(')content(yday)delimiter(')>operator(])operator(\))operator(;) comment(// Extract indexed, and associative arrays, respectively, from 'localtime') -local_variable($today) operator(=) ident(localtime)operator(()operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Today is day %d of the current year)char(\\n)delimiter(")operator(,) local_variable($today)operator([)integer(7)operator(])operator(\))operator(;) +local_variable($today) operator(=) predefined(localtime)operator(()operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Today is day %d of the current year)char(\\n)delimiter(")>operator(,) local_variable($today)operator([)integer(7)operator(])operator(\))operator(;) -local_variable($today) operator(=) ident(localtime)operator(()ident(time)operator(()operator(\))operator(,) constant(TRUE)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Today is day %d of the current year)char(\\n)delimiter(")operator(,) local_variable($today)operator([)delimiter(')string(tm_yday)delimiter(')operator(])operator(\))operator(;) +local_variable($today) operator(=) predefined(localtime)operator(()predefined(time)operator(()operator(\))operator(,) reserved(TRUE)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Today is day %d of the current year)char(\\n)delimiter(")>operator(,) local_variable($today)operator([)string<delimiter(')content(tm_yday)delimiter(')>operator(])operator(\))operator(;) comment(// @@PLEAC@@_3.1) -ident(define)operator(()constant(SEP)operator(,) delimiter(')string(-)delimiter(')operator(\))operator(;) +predefined(define)operator(()constant(SEP)operator(,) string<delimiter(')content(-)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($today) operator(=) ident(getdate)operator(()operator(\))operator(;) +local_variable($today) operator(=) predefined(getdate)operator(()operator(\))operator(;) -local_variable($day) operator(=) local_variable($today)operator([)delimiter(')string(mday)delimiter(')operator(])operator(;) -local_variable($month) operator(=) local_variable($today)operator([)delimiter(')string(mon)delimiter(')operator(])operator(;) -local_variable($year) operator(=) local_variable($today)operator([)delimiter(')string(year)delimiter(')operator(])operator(;) +local_variable($day) operator(=) local_variable($today)operator([)string<delimiter(')content(mday)delimiter(')>operator(])operator(;) +local_variable($month) operator(=) local_variable($today)operator([)string<delimiter(')content(mon)delimiter(')>operator(])operator(;) +local_variable($year) operator(=) local_variable($today)operator([)string<delimiter(')content(year)delimiter(')>operator(])operator(;) comment(// Either do this to use interpolation:) local_variable($sep) operator(=) constant(SEP)operator(;) -pre_type(echo) delimiter(")string(Current date is: )operator({)local_variable($year)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($month)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($day)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(Current date is: )operator({)local_variable($year)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($month)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($day)operator(})char(\\n)delimiter(")>operator(;) comment(// or simply concatenate:) -pre_type(echo) delimiter(')string(Current date is: )delimiter(') operator(.) local_variable($year) operator(.) constant(SEP) operator(.) local_variable($month) operator(.) constant(SEP) operator(.) local_variable($day) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(')content(Current date is: )delimiter(')> operator(.) local_variable($year) operator(.) constant(SEP) operator(.) local_variable($month) operator(.) constant(SEP) operator(.) local_variable($day) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ------------) -local_variable($today) operator(=) ident(localtime)operator(()ident(time)operator(()operator(\))operator(,) constant(TRUE)operator(\))operator(;) +local_variable($today) operator(=) predefined(localtime)operator(()predefined(time)operator(()operator(\))operator(,) reserved(TRUE)operator(\))operator(;) -local_variable($day) operator(=) local_variable($today)operator([)delimiter(')string(tm_mday)delimiter(')operator(])operator(;) -local_variable($month) operator(=) local_variable($today)operator([)delimiter(')string(tm_mon)delimiter(')operator(]) operator(+) integer(1)operator(;) -local_variable($year) operator(=) local_variable($today)operator([)delimiter(')string(tm_year)delimiter(')operator(]) operator(+) integer(1900)operator(;) +local_variable($day) operator(=) local_variable($today)operator([)string<delimiter(')content(tm_mday)delimiter(')>operator(])operator(;) +local_variable($month) operator(=) local_variable($today)operator([)string<delimiter(')content(tm_mon)delimiter(')>operator(]) operator(+) integer(1)operator(;) +local_variable($year) operator(=) local_variable($today)operator([)string<delimiter(')content(tm_year)delimiter(')>operator(]) operator(+) integer(1900)operator(;) -ident(printf)operator(()delimiter(")string(Current date is: %4d%s%2d%s%2d)char(\\n)delimiter(")operator(,) local_variable($year)operator(,) constant(SEP)operator(,) local_variable($month)operator(,) constant(SEP)operator(,) local_variable($day)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Current date is: %4d%s%2d%s%2d)char(\\n)delimiter(")>operator(,) local_variable($year)operator(,) constant(SEP)operator(,) local_variable($month)operator(,) constant(SEP)operator(,) local_variable($day)operator(\))operator(;) comment(// ------------) -local_variable($format) operator(=) delimiter(')string(Y)delimiter(') operator(.) constant(SEP) operator(.) delimiter(')string(n)delimiter(') operator(.) constant(SEP) operator(.) delimiter(')string(d)delimiter(')operator(;) +local_variable($format) operator(=) string<delimiter(')content(Y)delimiter(')> operator(.) constant(SEP) operator(.) string<delimiter(')content(n)delimiter(')> operator(.) constant(SEP) operator(.) string<delimiter(')content(d)delimiter(')>operator(;) -local_variable($today) operator(=) ident(date)operator(()local_variable($format)operator(\))operator(;) +local_variable($today) operator(=) predefined(date)operator(()local_variable($format)operator(\))operator(;) -pre_type(echo) delimiter(")string(Current date is: )operator({)local_variable($today)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(Current date is: )operator({)local_variable($today)operator(})char(\\n)delimiter(")>operator(;) comment(// ------------) local_variable($sep) operator(=) constant(SEP)operator(;) -local_variable($today) operator(=) ident(strftime)operator(()delimiter(")string(%Y)local_variable($sep)string(%m)local_variable($sep)string(%d)delimiter(")operator(\))operator(;) +local_variable($today) operator(=) predefined(strftime)operator(()string<delimiter(")content(%Y)local_variable($sep)content(%m)local_variable($sep)content(%d)delimiter(")>operator(\))operator(;) -pre_type(echo) delimiter(")string(Current date is: )operator({)local_variable($today)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(Current date is: )operator({)local_variable($today)operator(})char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_3.2) -local_variable($timestamp) operator(=) ident(mktime)operator(()local_variable($hour)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($month)operator(,) local_variable($day)operator(,) local_variable($year)operator(\))operator(;) +local_variable($timestamp) operator(=) predefined(mktime)operator(()local_variable($hour)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($month)operator(,) local_variable($day)operator(,) local_variable($year)operator(\))operator(;) -local_variable($timestamp) operator(=) ident(gmmktime)operator(()local_variable($hour)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($month)operator(,) local_variable($day)operator(,) local_variable($year)operator(\))operator(;) +local_variable($timestamp) operator(=) predefined(gmmktime)operator(()local_variable($hour)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($month)operator(,) local_variable($day)operator(,) local_variable($year)operator(\))operator(;) comment(// @@PLEAC@@_3.3) -local_variable($dmyhms) operator(=) ident(getdate)operator(()operator(\))operator(;) comment(// timestamp: current date / time) +local_variable($dmyhms) operator(=) predefined(getdate)operator(()operator(\))operator(;) comment(// timestamp: current date / time) -local_variable($dmyhms) operator(=) ident(getdate)operator(()local_variable($timestamp)operator(\))operator(;) comment(// timestamp: arbitrary) +local_variable($dmyhms) operator(=) predefined(getdate)operator(()local_variable($timestamp)operator(\))operator(;) comment(// timestamp: arbitrary) -local_variable($day) operator(=) local_variable($dmyhms)operator([)delimiter(')string(mday)delimiter(')operator(])operator(;) -local_variable($month) operator(=) local_variable($dmyhms)operator([)delimiter(')string(mon)delimiter(')operator(])operator(;) -local_variable($year) operator(=) local_variable($dmyhms)operator([)delimiter(')string(year)delimiter(')operator(])operator(;) +local_variable($day) operator(=) local_variable($dmyhms)operator([)string<delimiter(')content(mday)delimiter(')>operator(])operator(;) +local_variable($month) operator(=) local_variable($dmyhms)operator([)string<delimiter(')content(mon)delimiter(')>operator(])operator(;) +local_variable($year) operator(=) local_variable($dmyhms)operator([)string<delimiter(')content(year)delimiter(')>operator(])operator(;) -local_variable($hours) operator(=) local_variable($dmyhms)operator([)delimiter(')string(hours)delimiter(')operator(])operator(;) -local_variable($minutes) operator(=) local_variable($dmyhms)operator([)delimiter(')string(minutes)delimiter(')operator(])operator(;) -local_variable($seconds) operator(=) local_variable($dmyhms)operator([)delimiter(')string(seconds)delimiter(')operator(])operator(;) +local_variable($hours) operator(=) local_variable($dmyhms)operator([)string<delimiter(')content(hours)delimiter(')>operator(])operator(;) +local_variable($minutes) operator(=) local_variable($dmyhms)operator([)string<delimiter(')content(minutes)delimiter(')>operator(])operator(;) +local_variable($seconds) operator(=) local_variable($dmyhms)operator([)string<delimiter(')content(seconds)delimiter(')>operator(])operator(;) comment(// @@PLEAC@@_3.4) comment(// Date arithmetic is probably most easily performed using timestamps [i.e. *NIX Epoch) @@ -1047,13 +1047,13 @@ local_variable($then) operator(=) local_variable($now) operator(-) local_variabl comment(// ------------) -local_variable($now) operator(=) ident(mktime)operator(()integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(8)operator(,) integer(6)operator(,) integer(2003)operator(\))operator(;) +local_variable($now) operator(=) predefined(mktime)operator(()integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) integer(8)operator(,) integer(6)operator(,) integer(2003)operator(\))operator(;) -local_variable($diff1) operator(=) ident(dateOffset)operator(()delimiter(')string(day=1)delimiter(')operator(\))operator(;) local_variable($diff2) operator(=) ident(dateOffset)operator(()delimiter(')string(weeks=2)delimiter(')operator(\))operator(;) +local_variable($diff1) operator(=) ident(dateOffset)operator(()string<delimiter(')content(day=1)delimiter(')>operator(\))operator(;) local_variable($diff2) operator(=) ident(dateOffset)operator(()string<delimiter(')content(weeks=2)delimiter(')>operator(\))operator(;) -pre_type(echo) delimiter(')string(Today is: )delimiter(') operator(.) ident(date)operator(()delimiter(')string(Y-m-d)delimiter(')operator(,) local_variable($now)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) delimiter(')string(One day in the future is: )delimiter(') operator(.) ident(date)operator(()delimiter(')string(Y-m-d)delimiter(')operator(,) local_variable($now) operator(+) local_variable($diff1)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) delimiter(')string(Two weeks in the past is: )delimiter(') operator(.) ident(date)operator(()delimiter(')string(Y-m-d)delimiter(')operator(,) local_variable($now) operator(-) local_variable($diff2)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(')content(Today is: )delimiter(')> operator(.) predefined(date)operator(()string<delimiter(')content(Y-m-d)delimiter(')>operator(,) local_variable($now)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) string<delimiter(')content(One day in the future is: )delimiter(')> operator(.) predefined(date)operator(()string<delimiter(')content(Y-m-d)delimiter(')>operator(,) local_variable($now) operator(+) local_variable($diff1)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) string<delimiter(')content(Two weeks in the past is: )delimiter(')> operator(.) predefined(date)operator(()string<delimiter(')content(Y-m-d)delimiter(')>operator(,) local_variable($now) operator(-) local_variable($diff2)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ----------------------------) @@ -1071,13 +1071,13 @@ comment(// and to illustrate how the other approaches might be used ) comment(// 1. 'dateOffset') -local_variable($birthtime) operator(=) ident(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(1973)operator(\))operator(;) +local_variable($birthtime) operator(=) predefined(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(1973)operator(\))operator(;) -local_variable($interval) operator(=) ident(dateOffset)operator(()delimiter(')string(day=55)delimiter(')operator(,) delimiter(')string(hours=2)delimiter(')operator(,) delimiter(')string(min=17)delimiter(')operator(,) delimiter(')string(sec=5)delimiter(')operator(\))operator(;) +local_variable($interval) operator(=) ident(dateOffset)operator(()string<delimiter(')content(day=55)delimiter(')>operator(,) string<delimiter(')content(hours=2)delimiter(')>operator(,) string<delimiter(')content(min=17)delimiter(')>operator(,) string<delimiter(')content(sec=5)delimiter(')>operator(\))operator(;) local_variable($then) operator(=) local_variable($birthtime) operator(+) local_variable($interval)operator(;) -ident(printf)operator(()delimiter(")string(Birthtime is: %s)char(\\n)string(then is: %s)char(\\n)delimiter(")operator(,) ident(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($birthtime)operator(\))operator(,) ident(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($then)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Birthtime is: %s)char(\\n)content(then is: %s)char(\\n)delimiter(")>operator(,) predefined(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($birthtime)operator(\))operator(,) predefined(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($then)operator(\))operator(\))operator(;) comment(// ------------) @@ -1089,42 +1089,42 @@ local_variable($hr) operator(=) integer(3)operator(;) local_variable($min) opera local_variable($yroff) operator(=) integer(0)operator(;) local_variable($monoff) operator(=) integer(0)operator(;) local_variable($dayoff) operator(=) integer(55)operator(;) local_variable($hroff) operator(=) integer(2)operator(;) local_variable($minoff) operator(=) integer(17)operator(;) local_variable($secoff) operator(=) integer(5)operator(;) comment(// Base date) -local_variable($birthtime) operator(=) ident(mktime)operator(()local_variable($hr)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($mon)operator(,) local_variable($day)operator(,) local_variable($year)operator(,) constant(TRUE)operator(\))operator(;) +local_variable($birthtime) operator(=) predefined(mktime)operator(()local_variable($hr)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($mon)operator(,) local_variable($day)operator(,) local_variable($year)operator(,) reserved(TRUE)operator(\))operator(;) -local_variable($year) operator(=) ident(date)operator(()delimiter(')string(Y)delimiter(')operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($yroff)operator(;) -local_variable($mon) operator(=) ident(date)operator(()delimiter(')string(m)delimiter(')operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($monoff)operator(;) -local_variable($day) operator(=) ident(date)operator(()delimiter(')string(d)delimiter(')operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($dayoff)operator(;) +local_variable($year) operator(=) predefined(date)operator(()string<delimiter(')content(Y)delimiter(')>operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($yroff)operator(;) +local_variable($mon) operator(=) predefined(date)operator(()string<delimiter(')content(m)delimiter(')>operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($monoff)operator(;) +local_variable($day) operator(=) predefined(date)operator(()string<delimiter(')content(d)delimiter(')>operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($dayoff)operator(;) -local_variable($hr) operator(=) ident(date)operator(()delimiter(')string(H)delimiter(')operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($hroff)operator(;) -local_variable($min) operator(=) ident(date)operator(()delimiter(')string(i)delimiter(')operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($minoff)operator(;) -local_variable($sec) operator(=) ident(date)operator(()delimiter(')string(s)delimiter(')operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($secoff)operator(;) +local_variable($hr) operator(=) predefined(date)operator(()string<delimiter(')content(H)delimiter(')>operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($hroff)operator(;) +local_variable($min) operator(=) predefined(date)operator(()string<delimiter(')content(i)delimiter(')>operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($minoff)operator(;) +local_variable($sec) operator(=) predefined(date)operator(()string<delimiter(')content(s)delimiter(')>operator(,) local_variable($birthtime)operator(\)) operator(+) local_variable($secoff)operator(;) comment(// Offset date) -local_variable($then) operator(=) ident(mktime)operator(()local_variable($hr)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($mon)operator(,) local_variable($day)operator(,) local_variable($year)operator(,) constant(TRUE)operator(\))operator(;) +local_variable($then) operator(=) predefined(mktime)operator(()local_variable($hr)operator(,) local_variable($min)operator(,) local_variable($sec)operator(,) local_variable($mon)operator(,) local_variable($day)operator(,) local_variable($year)operator(,) reserved(TRUE)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Birthtime is: %s)char(\\n)string(then is: %s)char(\\n)delimiter(")operator(,) ident(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($birthtime)operator(\))operator(,) ident(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($then)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Birthtime is: %s)char(\\n)content(then is: %s)char(\\n)delimiter(")>operator(,) predefined(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($birthtime)operator(\))operator(,) predefined(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($then)operator(\))operator(\))operator(;) comment(// ------------) comment(// 3. 'strtotime') comment(// Generate timestamp whatever way is preferable) -local_variable($birthtime) operator(=) ident(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(1973)operator(\))operator(;) -local_variable($birthtime) operator(=) ident(strtotime)operator(()delimiter(')string(1/18/1973 03:45:50)delimiter(')operator(\))operator(;) +local_variable($birthtime) operator(=) predefined(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(1973)operator(\))operator(;) +local_variable($birthtime) operator(=) predefined(strtotime)operator(()string<delimiter(')content(1/18/1973 03:45:50)delimiter(')>operator(\))operator(;) -local_variable($then) operator(=) ident(strtotime)operator(()delimiter(')string(+55 days 2 hours 17 minutes 2 seconds)delimiter(')operator(,) local_variable($birthtime)operator(\))operator(;) +local_variable($then) operator(=) predefined(strtotime)operator(()string<delimiter(')content(+55 days 2 hours 17 minutes 2 seconds)delimiter(')>operator(,) local_variable($birthtime)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Birthtime is: %s)char(\\n)string(then is: %s)char(\\n)delimiter(")operator(,) ident(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($birthtime)operator(\))operator(,) ident(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($then)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Birthtime is: %s)char(\\n)content(then is: %s)char(\\n)delimiter(")>operator(,) predefined(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($birthtime)operator(\))operator(,) predefined(date)operator(()constant(DATE_RFC1123)operator(,) local_variable($then)operator(\))operator(\))operator(;) comment(// ------------) comment(// 4. 'DateTime' class) -local_variable($birthtime) operator(=) pre_type(new) constant(DateTime)operator(()delimiter(')string(1/18/1973 03:45:50)delimiter(')operator(\))operator(;) -local_variable($then) operator(=) pre_type(new) constant(DateTime)operator(()delimiter(')string(1/18/1973 03:45:50)delimiter(')operator(\))operator(;) -local_variable($then)operator(->)ident(modify)operator(()delimiter(')string(+55 days 2 hours 17 minutes 2 seconds)delimiter(')operator(\))operator(;) +local_variable($birthtime) operator(=) reserved(new) constant(DateTime)operator(()string<delimiter(')content(1/18/1973 03:45:50)delimiter(')>operator(\))operator(;) +local_variable($then) operator(=) reserved(new) constant(DateTime)operator(()string<delimiter(')content(1/18/1973 03:45:50)delimiter(')>operator(\))operator(;) +local_variable($then)operator(->)ident(modify)operator(()string<delimiter(')content(+55 days 2 hours 17 minutes 2 seconds)delimiter(')>operator(\))operator(;) -ident(printf)operator(()delimiter(")string(Birthtime is: %s)char(\\n)string(then is: %s)char(\\n)delimiter(")operator(,) local_variable($birthtime)operator(->)ident(format)operator(()constant(DATE_RFC1123)operator(\))operator(,) local_variable($then)operator(->)ident(format)operator(()constant(DATE_RFC1123)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Birthtime is: %s)char(\\n)content(then is: %s)char(\\n)delimiter(")>operator(,) local_variable($birthtime)operator(->)ident(format)operator(()constant(DATE_RFC1123)operator(\))operator(,) local_variable($then)operator(->)ident(format)operator(()constant(DATE_RFC1123)operator(\))operator(\))operator(;) comment(// @@PLEAC@@_3.5) comment(// Date intervals are most easily computed using timestamps [i.e. *NIX Epoch) @@ -1138,105 +1138,105 @@ local_variable($interval_seconds) operator(=) local_variable($recent) operator(- comment(// ----------------------------) comment(// Conventional approach ...) -local_variable($bree) operator(=) ident(strtotime)operator(()delimiter(')string(16 Jun 1981, 4:35:25)delimiter(')operator(\))operator(;) -local_variable($nat) operator(=) ident(strtotime)operator(()delimiter(')string(18 Jan 1973, 3:45:50)delimiter(')operator(\))operator(;) +local_variable($bree) operator(=) predefined(strtotime)operator(()string<delimiter(')content(16 Jun 1981, 4:35:25)delimiter(')>operator(\))operator(;) +local_variable($nat) operator(=) predefined(strtotime)operator(()string<delimiter(')content(18 Jan 1973, 3:45:50)delimiter(')>operator(\))operator(;) comment(// ... or, with daylight saving adjustment) -local_variable($bree) operator(=) ident(mktime)operator(()integer(4)operator(,) integer(35)operator(,) integer(25)operator(,) integer(6)operator(,) integer(16)operator(,) integer(1981)operator(,) constant(TRUE)operator(\))operator(;) -local_variable($nat) operator(=) ident(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(1973)operator(,) constant(TRUE)operator(\))operator(;) +local_variable($bree) operator(=) predefined(mktime)operator(()integer(4)operator(,) integer(35)operator(,) integer(25)operator(,) integer(6)operator(,) integer(16)operator(,) integer(1981)operator(,) reserved(TRUE)operator(\))operator(;) +local_variable($nat) operator(=) predefined(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(1973)operator(,) reserved(TRUE)operator(\))operator(;) local_variable($difference) operator(=) local_variable($bree) operator(-) local_variable($nat)operator(;) comment(// 'dateInterval' custom function computes intervals in several measures given an) comment(// interval in seconds. Note, 'month' and 'year' measures not provided) -ident(printf)operator(()delimiter(")string(There were %d seconds between Nat and Bree)char(\\n)delimiter(")operator(,) local_variable($difference)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(There were %d weeks between Nat and Bree)char(\\n)delimiter(")operator(,) ident(dateInterval)operator(()delimiter(')string(weeks)delimiter(')operator(,) local_variable($difference)operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(There were %d days between Nat and Bree)char(\\n)delimiter(")operator(,) ident(dateInterval)operator(()delimiter(')string(days)delimiter(')operator(,) local_variable($difference)operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(There were %d hours between Nat and Bree)char(\\n)delimiter(")operator(,) ident(dateInterval)operator(()delimiter(')string(hours)delimiter(')operator(,) local_variable($difference)operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(There were %d minutes between Nat and Bree)char(\\n)delimiter(")operator(,) ident(dateInterval)operator(()delimiter(')string(mins)delimiter(')operator(,) local_variable($difference)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(There were %d seconds between Nat and Bree)char(\\n)delimiter(")>operator(,) local_variable($difference)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(There were %d weeks between Nat and Bree)char(\\n)delimiter(")>operator(,) ident(dateInterval)operator(()string<delimiter(')content(weeks)delimiter(')>operator(,) local_variable($difference)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(There were %d days between Nat and Bree)char(\\n)delimiter(")>operator(,) ident(dateInterval)operator(()string<delimiter(')content(days)delimiter(')>operator(,) local_variable($difference)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(There were %d hours between Nat and Bree)char(\\n)delimiter(")>operator(,) ident(dateInterval)operator(()string<delimiter(')content(hours)delimiter(')>operator(,) local_variable($difference)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(There were %d minutes between Nat and Bree)char(\\n)delimiter(")>operator(,) ident(dateInterval)operator(()string<delimiter(')content(mins)delimiter(')>operator(,) local_variable($difference)operator(\))operator(\))operator(;) comment(// @@PLEAC@@_3.6) comment(// 'getdate' accepts a timestamp [or implicitly calls 'time'] and returns an array of) comment(// date components. It returns much the same information as 'strptime' except that) comment(// the component names are different) -local_variable($today) operator(=) ident(getdate)operator(()operator(\))operator(;) +local_variable($today) operator(=) predefined(getdate)operator(()operator(\))operator(;) -local_variable($weekday) operator(=) local_variable($today)operator([)delimiter(')string(wday)delimiter(')operator(])operator(;) -local_variable($monthday) operator(=) local_variable($today)operator([)delimiter(')string(mday)delimiter(')operator(])operator(;) -local_variable($yearday) operator(=) local_variable($today)operator([)delimiter(')string(yday)delimiter(')operator(])operator(;) +local_variable($weekday) operator(=) local_variable($today)operator([)string<delimiter(')content(wday)delimiter(')>operator(])operator(;) +local_variable($monthday) operator(=) local_variable($today)operator([)string<delimiter(')content(mday)delimiter(')>operator(])operator(;) +local_variable($yearday) operator(=) local_variable($today)operator([)string<delimiter(')content(yday)delimiter(')>operator(])operator(;) -local_variable($weeknumber) operator(=) operator(()ident(int)operator(\)) ident(round)operator(()local_variable($yearday) operator(/) integer(7)float(.0)operator(\))operator(;) +local_variable($weeknumber) operator(=) operator(()pre_type(int)operator(\)) predefined(round)operator(()local_variable($yearday) operator(/) float(7.0)operator(\))operator(;) comment(// Safter method of obtaining week number) -local_variable($weeknumber) operator(=) ident(strftime)operator(()delimiter(')string(%U)delimiter(')operator(\)) operator(+) integer(1)operator(;) +local_variable($weeknumber) operator(=) predefined(strftime)operator(()string<delimiter(')content(%U)delimiter(')>operator(\)) operator(+) integer(1)operator(;) comment(// ----------------------------) -ident(define)operator(()constant(SEP)operator(,) delimiter(')string(/)delimiter(')operator(\))operator(;) +predefined(define)operator(()constant(SEP)operator(,) string<delimiter(')content(/)delimiter(')>operator(\))operator(;) local_variable($day) operator(=) integer(16)operator(;) local_variable($month) operator(=) integer(6)operator(;) local_variable($year) operator(=) integer(1981)operator(;) -local_variable($timestamp) operator(=) ident(mktime)operator(()integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) local_variable($month)operator(,) local_variable($day)operator(,) local_variable($year)operator(\))operator(;) +local_variable($timestamp) operator(=) predefined(mktime)operator(()integer(0)operator(,) integer(0)operator(,) integer(0)operator(,) local_variable($month)operator(,) local_variable($day)operator(,) local_variable($year)operator(\))operator(;) -local_variable($date) operator(=) ident(getdate)operator(()local_variable($timestamp)operator(\))operator(;) +local_variable($date) operator(=) predefined(getdate)operator(()local_variable($timestamp)operator(\))operator(;) -local_variable($weekday) operator(=) local_variable($date)operator([)delimiter(')string(wday)delimiter(')operator(])operator(;) -local_variable($monthday) operator(=) local_variable($date)operator([)delimiter(')string(mday)delimiter(')operator(])operator(;) -local_variable($yearday) operator(=) local_variable($date)operator([)delimiter(')string(yday)delimiter(')operator(])operator(;) +local_variable($weekday) operator(=) local_variable($date)operator([)string<delimiter(')content(wday)delimiter(')>operator(])operator(;) +local_variable($monthday) operator(=) local_variable($date)operator([)string<delimiter(')content(mday)delimiter(')>operator(])operator(;) +local_variable($yearday) operator(=) local_variable($date)operator([)string<delimiter(')content(yday)delimiter(')>operator(])operator(;) -local_variable($weeknumber) operator(=) operator(()ident(int)operator(\)) ident(round)operator(()local_variable($yearday) operator(/) integer(7)float(.0)operator(\))operator(;) +local_variable($weeknumber) operator(=) operator(()pre_type(int)operator(\)) predefined(round)operator(()local_variable($yearday) operator(/) float(7.0)operator(\))operator(;) -local_variable($weeknumber) operator(=) ident(strftime)operator(()delimiter(')string(%U)delimiter(')operator(,) local_variable($timestamp)operator(\)) operator(+) integer(1)operator(;) +local_variable($weeknumber) operator(=) predefined(strftime)operator(()string<delimiter(')content(%U)delimiter(')>operator(,) local_variable($timestamp)operator(\)) operator(+) integer(1)operator(;) comment(// Interpolate ...) local_variable($sep) operator(=) constant(SEP)operator(;) -pre_type(echo) delimiter(")operator({)local_variable($month)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($day)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($year)operator(})string( was a )operator({)local_variable($date)operator([)delimiter(')string(weekday)delimiter(')operator(])operator(})string( in week )operator({)local_variable($weeknumber)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($month)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($day)operator(})operator({)local_variable($sep)operator(})operator({)local_variable($year)operator(})content( was a )operator({)local_variable($date)operator([)string<delimiter(')content(weekday)delimiter(')>operator(])operator(})content( in week )operator({)local_variable($weeknumber)operator(})char(\\n)delimiter(")>operator(;) comment(// ... or, concatenate) -pre_type(echo) local_variable($month) operator(.) constant(SEP) operator(.) local_variable($day) operator(.) constant(SEP) operator(.) local_variable($year) operator(.) delimiter(')string( was a )delimiter(') operator(.) local_variable($date)operator([)delimiter(')string(weekday)delimiter(')operator(]) - operator(.) delimiter(')string( in week )delimiter(') operator(.) local_variable($weeknumber) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) local_variable($month) operator(.) constant(SEP) operator(.) local_variable($day) operator(.) constant(SEP) operator(.) local_variable($year) operator(.) string<delimiter(')content( was a )delimiter(')> operator(.) local_variable($date)operator([)string<delimiter(')content(weekday)delimiter(')>operator(]) + operator(.) string<delimiter(')content( in week )delimiter(')> operator(.) local_variable($weeknumber) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_3.7) comment(// 'strtotime' parses a textual date expression by attempting a 'best guess' at) comment(// the format, and either fails, or generates a timestamp. Timestamp could be fed) comment(// into any one of the various functions; example:) -local_variable($timestamp) operator(=) ident(strtotime)operator(()delimiter(')string(1998-06-03)delimiter(')operator(\))operator(;) pre_type(echo) ident(strftime)operator(()delimiter(')string(%Y-%m-%d)delimiter(')operator(,) local_variable($timestamp)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +local_variable($timestamp) operator(=) predefined(strtotime)operator(()string<delimiter(')content(1998-06-03)delimiter(')>operator(\))operator(;) predefined(echo) predefined(strftime)operator(()string<delimiter(')content(%Y-%m-%d)delimiter(')>operator(,) local_variable($timestamp)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// 'strptime' parses a textual date expression according to a specified format,) comment(// and returns an array of date components; components can be easily dumped) -ident(print_r)operator(()ident(strptime)operator(()delimiter(')string(1998-06-03)delimiter(')operator(,) delimiter(')string(%Y-%m-%d)delimiter(')operator(\))operator(\))operator(;) +predefined(print_r)operator(()predefined(strptime)operator(()string<delimiter(')content(1998-06-03)delimiter(')>operator(,) string<delimiter(')content(%Y-%m-%d)delimiter(')>operator(\))operator(\))operator(;) comment(// ----------------------------) comment(// Parse date string according to format) -local_variable($darr) operator(=) ident(strptime)operator(()delimiter(')string(1998-06-03)delimiter(')operator(,) delimiter(')string(%Y-%m-%d)delimiter(')operator(\))operator(;) +local_variable($darr) operator(=) predefined(strptime)operator(()string<delimiter(')content(1998-06-03)delimiter(')>operator(,) string<delimiter(')content(%Y-%m-%d)delimiter(')>operator(\))operator(;) -reserved(if) operator(()operator(!)pre_type(empty)operator(()local_variable($darr)operator(\))operator(\)) +reserved(if) operator(()operator(!)predefined(empty)operator(()local_variable($darr)operator(\))operator(\)) operator({) comment(// Show date components in 'debug' form) - ident(print_r)operator(()local_variable($darr)operator(\))operator(;) + predefined(print_r)operator(()local_variable($darr)operator(\))operator(;) comment(// Check whether there was a parse error i.e. one or more components could not) comment(// be extracted from the string) - reserved(if) operator(()pre_type(empty)operator(()local_variable($darr)operator([)delimiter(')string(unparsed)delimiter(')operator(])operator(\))operator(\)) + reserved(if) operator(()predefined(empty)operator(()local_variable($darr)operator([)string<delimiter(')content(unparsed)delimiter(')>operator(])operator(\))operator(\)) operator({) comment(// Properly parsed date, so validate required components using, 'checkdate') - reserved(if) operator(()ident(checkdate)operator(()local_variable($darr)operator([)delimiter(')string(tm_mon)delimiter(')operator(]) operator(+) integer(1)operator(,) local_variable($darr)operator([)delimiter(')string(tm_mday)delimiter(')operator(])operator(,) local_variable($darr)operator([)delimiter(')string(tm_year)delimiter(')operator(]) operator(+) integer(1900)operator(\))operator(\)) - pre_type(echo) delimiter(")string(Parsed date verified as correct)char(\\n)delimiter(")operator(;) + reserved(if) operator(()predefined(checkdate)operator(()local_variable($darr)operator([)string<delimiter(')content(tm_mon)delimiter(')>operator(]) operator(+) integer(1)operator(,) local_variable($darr)operator([)string<delimiter(')content(tm_mday)delimiter(')>operator(])operator(,) local_variable($darr)operator([)string<delimiter(')content(tm_year)delimiter(')>operator(]) operator(+) integer(1900)operator(\))operator(\)) + predefined(echo) string<delimiter(")content(Parsed date verified as correct)char(\\n)delimiter(")>operator(;) reserved(else) - pre_type(echo) delimiter(")string(Parsed date failed verification)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(Parsed date failed verification)char(\\n)delimiter(")>operator(;) operator(}) reserved(else) operator({) - pre_type(echo) delimiter(")string(Date string parse not complete; failed components: )operator({)local_variable($darr)operator([)delimiter(')string(unparsed)delimiter(')operator(])operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(Date string parse not complete; failed components: )operator({)local_variable($darr)operator([)string<delimiter(')content(unparsed)delimiter(')>operator(])operator(})char(\\n)delimiter(")>operator(;) operator(}) operator(}) reserved(else) operator({) - pre_type(echo) delimiter(")string(Date string could not be parsed)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(Date string could not be parsed)char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_3.8) @@ -1247,39 +1247,39 @@ comment(// via a call to 'time' which retrieves current time value) local_variable($ts) operator(=) integer(1234567890)operator(;) -ident(date)operator(()delimiter(')string(Y/m/d)delimiter(')operator(,) local_variable($ts)operator(\))operator(;) -ident(date)operator(()delimiter(')string(Y/m/d)delimiter(')operator(,) ident(mktime)operator(()local_variable($h)operator(,) local_variable($m)operator(,) local_variable($s)operator(,) local_variable($mth)operator(,) local_variable($d)operator(,) local_variable($y)operator(,) local_variable($is_dst)operator(\))operator(\))operator(;) +predefined(date)operator(()string<delimiter(')content(Y/m/d)delimiter(')>operator(,) local_variable($ts)operator(\))operator(;) +predefined(date)operator(()string<delimiter(')content(Y/m/d)delimiter(')>operator(,) predefined(mktime)operator(()local_variable($h)operator(,) local_variable($m)operator(,) local_variable($s)operator(,) local_variable($mth)operator(,) local_variable($d)operator(,) local_variable($y)operator(,) local_variable($is_dst)operator(\))operator(\))operator(;) -ident(date)operator(()delimiter(')string(Y/m/d)delimiter(')operator(\))operator(;) comment(// same as: date('Y/m/d', time(\)\);) +predefined(date)operator(()string<delimiter(')content(Y/m/d)delimiter(')>operator(\))operator(;) comment(// same as: date('Y/m/d', time(\)\);) comment(// ------------) local_variable($ts) operator(=) integer(1234567890)operator(;) -ident(strftime)operator(()delimiter(')string(%Y/%m/%d)delimiter(')operator(,) local_variable($ts)operator(\))operator(;) -ident(strftime)operator(()delimiter(')string(%Y/%m/%d)delimiter(')operator(,) ident(mktime)operator(()local_variable($h)operator(,) local_variable($m)operator(,) local_variable($s)operator(,) local_variable($mth)operator(,) local_variable($d)operator(,) local_variable($y)operator(,) local_variable($is_dst)operator(\))operator(\))operator(;) +predefined(strftime)operator(()string<delimiter(')content(%Y/%m/%d)delimiter(')>operator(,) local_variable($ts)operator(\))operator(;) +predefined(strftime)operator(()string<delimiter(')content(%Y/%m/%d)delimiter(')>operator(,) predefined(mktime)operator(()local_variable($h)operator(,) local_variable($m)operator(,) local_variable($s)operator(,) local_variable($mth)operator(,) local_variable($d)operator(,) local_variable($y)operator(,) local_variable($is_dst)operator(\))operator(\))operator(;) -ident(strftime)operator(()delimiter(')string(%Y/%m/%d)delimiter(')operator(\))operator(;) comment(// same as: strftime('%Y/%m/%d', time(\)\);) +predefined(strftime)operator(()string<delimiter(')content(%Y/%m/%d)delimiter(')>operator(\))operator(;) comment(// same as: strftime('%Y/%m/%d', time(\)\);) comment(// ----------------------------) comment(// 'mktime' creates a local time timestamp) -local_variable($t) operator(=) ident(strftime)operator(()delimiter(')string(%a %b %e %H:%M:%S %z %Y)delimiter(')operator(,) ident(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(73)operator(,) constant(TRUE)operator(\))operator(\))operator(;) -pre_type(echo) delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")operator(;) +local_variable($t) operator(=) predefined(strftime)operator(()string<delimiter(')content(%a %b %e %H:%M:%S %z %Y)delimiter(')>operator(,) predefined(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(73)operator(,) reserved(TRUE)operator(\))operator(\))operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")>operator(;) comment(// 'gmmktime' creates a GMT time timestamp) -local_variable($t) operator(=) ident(strftime)operator(()delimiter(')string(%a %b %e %H:%M:%S %z %Y)delimiter(')operator(,) ident(gmmktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(73)operator(\))operator(\))operator(;) -pre_type(echo) delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")operator(;) +local_variable($t) operator(=) predefined(strftime)operator(()string<delimiter(')content(%a %b %e %H:%M:%S %z %Y)delimiter(')>operator(,) predefined(gmmktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(73)operator(\))operator(\))operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")>operator(;) comment(// ----------------------------) comment(// 'strtotime' parses a textual date expression, and generates a timestamp ) -local_variable($t) operator(=) ident(strftime)operator(()delimiter(')string(%A %D)delimiter(')operator(,) ident(strtotime)operator(()delimiter(')string(18 Jan 1973, 3:45:50)delimiter(')operator(\))operator(\))operator(;) -pre_type(echo) delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")operator(;) +local_variable($t) operator(=) predefined(strftime)operator(()string<delimiter(')content(%A %D)delimiter(')>operator(,) predefined(strtotime)operator(()string<delimiter(')content(18 Jan 1973, 3:45:50)delimiter(')>operator(\))operator(\))operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")>operator(;) comment(// This should generate output identical to previous example) -local_variable($t) operator(=) ident(strftime)operator(()delimiter(')string(%A %D)delimiter(')operator(,) ident(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(73)operator(,) constant(TRUE)operator(\))operator(\))operator(;) -pre_type(echo) delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")operator(;) +local_variable($t) operator(=) predefined(strftime)operator(()string<delimiter(')content(%A %D)delimiter(')>operator(,) predefined(mktime)operator(()integer(3)operator(,) integer(45)operator(,) integer(50)operator(,) integer(1)operator(,) integer(18)operator(,) integer(73)operator(,) reserved(TRUE)operator(\))operator(\))operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($t)operator(})char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_3.9) comment(// PHP 5 and above can use the built-in, 'microtime'. Crude implementation for ealier versions:) @@ -1287,39 +1287,39 @@ comment(// function microtime(\) { $t = gettimeofday(\); return (float\) ($t['se comment(// ------------) -local_variable($before) operator(=) ident(microtime)operator(()operator(\))operator(;) +local_variable($before) operator(=) predefined(microtime)operator(()operator(\))operator(;) -local_variable($line) operator(=) ident(fgets)operator(()constant(STDIN)operator(\))operator(;) +local_variable($line) operator(=) predefined(fgets)operator(()constant(STDIN)operator(\))operator(;) -local_variable($elapsed) operator(=) ident(microtime)operator(()operator(\)) operator(-) local_variable($before)operator(;) +local_variable($elapsed) operator(=) predefined(microtime)operator(()operator(\)) operator(-) local_variable($before)operator(;) -ident(printf)operator(()delimiter(")string(You took %.3f seconds)char(\\n)delimiter(")operator(,) local_variable($elapsed)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(You took %.3f seconds)char(\\n)delimiter(")>operator(,) local_variable($elapsed)operator(\))operator(;) comment(// ------------) -ident(define)operator(()constant(NUMBER_OF_TIMES)operator(,) integer(100)operator(\))operator(;) -ident(define)operator(()constant(SIZE)operator(,) integer(500)operator(\))operator(;) +predefined(define)operator(()constant(NUMBER_OF_TIMES)operator(,) integer(100)operator(\))operator(;) +predefined(define)operator(()constant(SIZE)operator(,) integer(500)operator(\))operator(;) reserved(for)operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) constant(NUMBER_OF_TIMES)operator(;) local_variable($i)operator(++)operator(\)) operator({) - local_variable($arr) operator(=) pre_type(array)operator(()operator(\))operator(;) - reserved(for)operator(()local_variable($j) operator(=) integer(0)operator(;) local_variable($j) operator(<) constant(SIZE)operator(;) local_variable($j)operator(++)operator(\)) local_variable($arr)operator([)operator(]) operator(=) ident(rand)operator(()operator(\))operator(;) + local_variable($arr) operator(=) predefined(array)operator(()operator(\))operator(;) + reserved(for)operator(()local_variable($j) operator(=) integer(0)operator(;) local_variable($j) operator(<) constant(SIZE)operator(;) local_variable($j)operator(++)operator(\)) local_variable($arr)operator([)operator(]) operator(=) predefined(rand)operator(()operator(\))operator(;) - local_variable($begin) operator(=) ident(microtime)operator(()operator(\))operator(;) - ident(sort)operator(()local_variable($arr)operator(\))operator(;) - local_variable($elapsed) operator(=) ident(microtime)operator(()operator(\)) operator(-) local_variable($begin)operator(;) + local_variable($begin) operator(=) predefined(microtime)operator(()operator(\))operator(;) + predefined(sort)operator(()local_variable($arr)operator(\))operator(;) + local_variable($elapsed) operator(=) predefined(microtime)operator(()operator(\)) operator(-) local_variable($begin)operator(;) local_variable($total_time) operator(+)operator(=) local_variable($elapsed)operator(;) operator(}) -ident(printf)operator(()delimiter(")string(On average, sorting %d random numbers takes %.5f seconds)char(\\n)delimiter(")operator(,) constant(SIZE)operator(,) local_variable($total_time) operator(/) operator(()ident(float)operator(\)) constant(NUMBER_OF_TIMES)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(On average, sorting %d random numbers takes %.5f seconds)char(\\n)delimiter(")>operator(,) constant(SIZE)operator(,) local_variable($total_time) operator(/) operator(()pre_type(float)operator(\)) constant(NUMBER_OF_TIMES)operator(\))operator(;) comment(// @@PLEAC@@_3.10) comment(// Low-resolution: sleep time specified in seconds) -ident(sleep)operator(()integer(1)operator(\))operator(;) +predefined(sleep)operator(()integer(1)operator(\))operator(;) comment(// High-resolution: sleep time specified in microseconds [not reliable under Windows]) -ident(usleep)operator(()integer(250000)operator(\))operator(;) +predefined(usleep)operator(()integer(250000)operator(\))operator(;) comment(// @@PLEAC@@_3.11) comment(// @@INCOMPLETE@@) @@ -1328,63 +1328,63 @@ comment(// @@INCOMPLETE@@) comment(// @@PLEAC@@_4.0) comment(// Nested arrays are supported, and may be easily printed using 'print_r') -local_variable($nested) operator(=) pre_type(array)operator(()delimiter(')string(this)delimiter(')operator(,) delimiter(')string(that)delimiter(')operator(,) delimiter(')string(the)delimiter(')operator(,) delimiter(')string(other)delimiter(')operator(\))operator(;) +local_variable($nested) operator(=) predefined(array)operator(()string<delimiter(')content(this)delimiter(')>operator(,) string<delimiter(')content(that)delimiter(')>operator(,) string<delimiter(')content(the)delimiter(')>operator(,) string<delimiter(')content(other)delimiter(')>operator(\))operator(;) -local_variable($nested) operator(=) pre_type(array)operator(()delimiter(')string(this)delimiter(')operator(,) delimiter(')string(that)delimiter(')operator(,) pre_type(array)operator(()delimiter(')string(the)delimiter(')operator(,) delimiter(')string(other)delimiter(')operator(\))operator(\))operator(;) ident(print_r)operator(()local_variable($nested)operator(\))operator(;) +local_variable($nested) operator(=) predefined(array)operator(()string<delimiter(')content(this)delimiter(')>operator(,) string<delimiter(')content(that)delimiter(')>operator(,) predefined(array)operator(()string<delimiter(')content(the)delimiter(')>operator(,) string<delimiter(')content(other)delimiter(')>operator(\))operator(\))operator(;) predefined(print_r)operator(()local_variable($nested)operator(\))operator(;) -local_variable($tune) operator(=) pre_type(array)operator(()delimiter(')string(The)delimiter(')operator(,) delimiter(')string(Star-Spangled)delimiter(')operator(,) delimiter(')string(Banner)delimiter(')operator(\))operator(;) +local_variable($tune) operator(=) predefined(array)operator(()string<delimiter(')content(The)delimiter(')>operator(,) string<delimiter(')content(Star-Spangled)delimiter(')>operator(,) string<delimiter(')content(Banner)delimiter(')>operator(\))operator(;) comment(// @@PLEAC@@_4.1) comment(// PHP offers only the 'array' type which is actually an associative array, though) comment(// may be numerically indexed, to mimic vectors and matrices; there is no separate) comment(// 'list' type) -local_variable($a) operator(=) pre_type(array)operator(()delimiter(')string(quick)delimiter(')operator(,) delimiter(')string(brown)delimiter(')operator(,) delimiter(')string(fox)delimiter(')operator(\))operator(;) +local_variable($a) operator(=) predefined(array)operator(()string<delimiter(')content(quick)delimiter(')>operator(,) string<delimiter(')content(brown)delimiter(')>operator(,) string<delimiter(')content(fox)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($a) operator(=) ident(escapeshellarg)operator(()delimiter(')string(Why are you teasing me?)delimiter(')operator(\))operator(;) +local_variable($a) operator(=) predefined(escapeshellarg)operator(()string<delimiter(')content(Why are you teasing me?)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($lines) operator(=) delimiter(<<<END_OF_HERE_DOC) +local_variable($lines) operator(=) operator(<<)operator(<)constant(END_OF_HERE_DOC) constant(The) ident(boy) ident(stood) ident(on) ident(the) ident(burning) ident(deck)operator(,) ident(it) ident(was) reserved(as) ident(hot) reserved(as) ident(glass)operator(.) constant(END_OF_HERE_DOC)operator(;) comment(// ------------) -local_variable($bigarray) operator(=) ident(array_map)operator(()delimiter(')string(rtrim)delimiter(')operator(,) ident(file)operator(()delimiter(')string(mydatafile)delimiter(')operator(\))operator(\))operator(;) +local_variable($bigarray) operator(=) predefined(array_map)operator(()string<delimiter(')content(rtrim)delimiter(')>operator(,) predefined(file)operator(()string<delimiter(')content(mydatafile)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -local_variable($banner) operator(=) delimiter(')string(The mines of Moria)delimiter(')operator(;) +local_variable($banner) operator(=) string<delimiter(')content(The mines of Moria)delimiter(')>operator(;) -local_variable($banner) operator(=) ident(escapeshellarg)operator(()delimiter(')string(The mines of Moria)delimiter(')operator(\))operator(;) +local_variable($banner) operator(=) predefined(escapeshellarg)operator(()string<delimiter(')content(The mines of Moria)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($name) operator(=) delimiter(')string(Gandalf)delimiter(')operator(;) +local_variable($name) operator(=) string<delimiter(')content(Gandalf)delimiter(')>operator(;) -local_variable($banner) operator(=) delimiter(")string(Speak )operator({)local_variable($name)operator(})string(, and enter!)delimiter(")operator(;) +local_variable($banner) operator(=) string<delimiter(")content(Speak )operator({)local_variable($name)operator(})content(, and enter!)delimiter(")>operator(;) -local_variable($banner) operator(=) delimiter(')string(Speak )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($name)operator(\)) operator(.) delimiter(')string( and welcome!)delimiter(')operator(;) +local_variable($banner) operator(=) string<delimiter(')content(Speak )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($name)operator(\)) operator(.) string<delimiter(')content( and welcome!)delimiter(')>operator(;) comment(// ------------) -local_variable($his_host) operator(=) delimiter(')string(www.perl.com)delimiter(')operator(;) +local_variable($his_host) operator(=) string<delimiter(')content(www.perl.com)delimiter(')>operator(;) local_variable($host_info) operator(=) error(`)ident(nslookup) local_variable($his_host)error(`)operator(;) -local_variable($cmd) operator(=) delimiter(')string(ps )delimiter(') operator(.) ident(posix_getpid)operator(()operator(\))operator(;) local_variable($perl_info) operator(=) error(`)local_variable($cmd)error(`)operator(;) +local_variable($cmd) operator(=) string<delimiter(')content(ps )delimiter(')> operator(.) ident(posix_getpid)operator(()operator(\))operator(;) local_variable($perl_info) operator(=) error(`)local_variable($cmd)error(`)operator(;) local_variable($shell_info) operator(=) error(`)ident(ps) error($)error($)error(`)operator(;) comment(// ------------) -local_variable($banner) operator(=) pre_type(array)operator(()delimiter(')string(Costs)delimiter(')operator(,) delimiter(')string(only)delimiter(')operator(,) delimiter(')string($4.95)delimiter(')operator(\))operator(;) +local_variable($banner) operator(=) predefined(array)operator(()string<delimiter(')content(Costs)delimiter(')>operator(,) string<delimiter(')content(only)delimiter(')>operator(,) string<delimiter(')content($4.95)delimiter(')>operator(\))operator(;) -local_variable($banner) operator(=) ident(array_map)operator(()delimiter(')string(escapeshellarg)delimiter(')operator(,) ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(Costs only $4.95)delimiter(')operator(\))operator(\))operator(;) +local_variable($banner) operator(=) predefined(array_map)operator(()string<delimiter(')content(escapeshellarg)delimiter(')>operator(,) predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(Costs only $4.95)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) @@ -1393,71 +1393,71 @@ comment(// created from strings must use quoted strings, and make use of 'split' comment(// A slew of functions exist for performing string quoting, including 'escapeshellarg',) comment(// 'quotemeta', and 'preg_quote') -local_variable($brax) operator(=) ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(( \) < > { } [ ])delimiter(')operator(\))operator(;) +local_variable($brax) operator(=) predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(( \) < > { } [ ])delimiter(')>operator(\))operator(;) comment(// Do this to quote each element within '..') comment(// $brax = array_map('escapeshellarg', split(' ', '( \) < > { } [ ]'\)\);) -local_variable($rings) operator(=) ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(Nenya Narya Vilya)delimiter(')operator(\))operator(;) +local_variable($rings) operator(=) predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(Nenya Narya Vilya)delimiter(')>operator(\))operator(;) -local_variable($tags) operator(=) ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(LI TABLE TR TD A IMG H1 P)delimiter(')operator(\))operator(;) +local_variable($tags) operator(=) predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(LI TABLE TR TD A IMG H1 P)delimiter(')>operator(\))operator(;) -local_variable($sample) operator(=) ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(The vertical bar | looks and behaves like a pipe.)delimiter(')operator(\))operator(;) +local_variable($sample) operator(=) predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(The vertical bar | looks and behaves like a pipe.)delimiter(')>operator(\))operator(;) comment(// @@PLEAC@@_4.2) -pre_type(function) ident(commify_series)operator(()local_variable($list)operator(\)) +reserved(function) ident(commify_series)operator(()local_variable($list)operator(\)) operator({) - local_variable($n) operator(=) ident(str_word_count)operator(()local_variable($list)operator(\))operator(;) local_variable($series) operator(=) ident(str_word_count)operator(()local_variable($list)operator(,) integer(1)operator(\))operator(;) + local_variable($n) operator(=) predefined(str_word_count)operator(()local_variable($list)operator(\))operator(;) local_variable($series) operator(=) predefined(str_word_count)operator(()local_variable($list)operator(,) integer(1)operator(\))operator(;) - reserved(if) operator(()local_variable($n) operator(==) integer(0)operator(\)) reserved(return) constant(NULL)operator(;) - reserved(if) operator(()local_variable($n) operator(==) integer(1)operator(\)) reserved(return) local_variable($series)operator([)integer(0)operator(])operator(;) - reserved(if) operator(()local_variable($n) operator(==) integer(2)operator(\)) reserved(return) local_variable($series)operator([)integer(0)operator(]) operator(.) delimiter(')string( and )delimiter(') operator(.) local_variable($series)operator([)integer(1)operator(])operator(;) + reserved(if) operator(()local_variable($n) operator(==) integer(0)operator(\)) predefined(return) reserved(NULL)operator(;) + reserved(if) operator(()local_variable($n) operator(==) integer(1)operator(\)) predefined(return) local_variable($series)operator([)integer(0)operator(])operator(;) + reserved(if) operator(()local_variable($n) operator(==) integer(2)operator(\)) predefined(return) local_variable($series)operator([)integer(0)operator(]) operator(.) string<delimiter(')content( and )delimiter(')> operator(.) local_variable($series)operator([)integer(1)operator(])operator(;) - reserved(return) ident(join)operator(()delimiter(')string(, )delimiter(')operator(,) ident(array_slice)operator(()local_variable($series)operator(,) integer(0)operator(,) integer(-1)operator(\))operator(\)) operator(.) delimiter(')string(, and )delimiter(') operator(.) local_variable($series)operator([)local_variable($n) operator(-) integer(1)operator(])operator(;) + predefined(return) predefined(join)operator(()string<delimiter(')content(, )delimiter(')>operator(,) predefined(array_slice)operator(()local_variable($series)operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(\)) operator(.) string<delimiter(')content(, and )delimiter(')> operator(.) local_variable($series)operator([)local_variable($n) operator(-) integer(1)operator(])operator(;) operator(}) comment(// ------------) -pre_type(echo) ident(commify_series)operator(()delimiter(')string(red)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) ident(commify_series)operator(()delimiter(')string(red yellow)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) ident(commify_series)operator(()delimiter(')string(red yellow green)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) ident(commify_series)operator(()string<delimiter(')content(red)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) ident(commify_series)operator(()string<delimiter(')content(red yellow)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) ident(commify_series)operator(()string<delimiter(')content(red yellow green)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) -local_variable($mylist) operator(=) delimiter(')string(red yellow green)delimiter(')operator(;) -pre_type(echo) delimiter(')string(I have )delimiter(') operator(.) ident(commify_series)operator(()local_variable($mylist)operator(\)) operator(.) delimiter(")string( marbles.)char(\\n)delimiter(")operator(;) +local_variable($mylist) operator(=) string<delimiter(')content(red yellow green)delimiter(')>operator(;) +predefined(echo) string<delimiter(')content(I have )delimiter(')> operator(.) ident(commify_series)operator(()local_variable($mylist)operator(\)) operator(.) string<delimiter(")content( marbles.)char(\\n)delimiter(")>operator(;) comment(// ----------------------------) -pre_type(function) ident(commify_series)operator(()local_variable($arr)operator(\)) +reserved(function) ident(commify_series)operator(()local_variable($arr)operator(\)) operator({) - local_variable($n) operator(=) ident(count)operator(()local_variable($arr)operator(\))operator(;) local_variable($sepchar) operator(=) delimiter(')string(,)delimiter(')operator(;) + local_variable($n) operator(=) predefined(count)operator(()local_variable($arr)operator(\))operator(;) local_variable($sepchar) operator(=) string<delimiter(')content(,)delimiter(')>operator(;) reserved(foreach)operator(()local_variable($arr) reserved(as) local_variable($str)operator(\)) operator({) - reserved(if) operator(()ident(strpos)operator(()local_variable($str)operator(,) delimiter(')string(,)delimiter(')operator(\)) operator(===) pre_type(false)operator(\)) reserved(continue)operator(;) - local_variable($sepchar) operator(=) delimiter(')string(;)delimiter(')operator(;) reserved(break)operator(;) + reserved(if) operator(()predefined(strpos)operator(()local_variable($str)operator(,) string<delimiter(')content(,)delimiter(')>operator(\)) operator(===) reserved(false)operator(\)) reserved(continue)operator(;) + local_variable($sepchar) operator(=) string<delimiter(')content(;)delimiter(')>operator(;) reserved(break)operator(;) operator(}) - reserved(if) operator(()local_variable($n) operator(==) integer(0)operator(\)) reserved(return) constant(NULL)operator(;) - reserved(if) operator(()local_variable($n) operator(==) integer(1)operator(\)) reserved(return) local_variable($arr)operator([)integer(0)operator(])operator(;) - reserved(if) operator(()local_variable($n) operator(==) integer(2)operator(\)) reserved(return) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(')string( and )delimiter(') operator(.) local_variable($arr)operator([)integer(1)operator(])operator(;) + reserved(if) operator(()local_variable($n) operator(==) integer(0)operator(\)) predefined(return) reserved(NULL)operator(;) + reserved(if) operator(()local_variable($n) operator(==) integer(1)operator(\)) predefined(return) local_variable($arr)operator([)integer(0)operator(])operator(;) + reserved(if) operator(()local_variable($n) operator(==) integer(2)operator(\)) predefined(return) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(')content( and )delimiter(')> operator(.) local_variable($arr)operator([)integer(1)operator(])operator(;) - reserved(return) ident(join)operator(()delimiter(")operator({)local_variable($sepchar)operator(})string( )delimiter(")operator(,) ident(array_slice)operator(()local_variable($arr)operator(,) integer(0)operator(,) integer(-1)operator(\))operator(\)) operator(.) delimiter(")operator({)local_variable($sepchar)operator(})string( and )delimiter(") operator(.) local_variable($arr)operator([)local_variable($n) operator(-) integer(1)operator(])operator(;) + predefined(return) predefined(join)operator(()string<delimiter(")operator({)local_variable($sepchar)operator(})content( )delimiter(")>operator(,) predefined(array_slice)operator(()local_variable($arr)operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(\)) operator(.) string<delimiter(")operator({)local_variable($sepchar)operator(})content( and )delimiter(")> operator(.) local_variable($arr)operator([)local_variable($n) operator(-) integer(1)operator(])operator(;) operator(}) comment(// ------------) -local_variable($lists) operator(=) pre_type(array)operator(() - pre_type(array)operator(()delimiter(')string(just one thing)delimiter(')operator(\))operator(,) - ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(Mutt Jeff)delimiter(')operator(\))operator(,) - ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(Peter Paul Mary)delimiter(')operator(\))operator(,) - pre_type(array)operator(()delimiter(')string(To our parents)delimiter(')operator(,) delimiter(')string(Mother Theresa)delimiter(')operator(,) delimiter(')string(God)delimiter(')operator(\))operator(,) - pre_type(array)operator(()delimiter(')string(pastrami)delimiter(')operator(,) delimiter(')string(ham and cheese)delimiter(')operator(,) delimiter(')string(peanut butter and jelly)delimiter(')operator(,) delimiter(')string(tuna)delimiter(')operator(\))operator(,) - pre_type(array)operator(()delimiter(')string(recycle tired, old phrases)delimiter(')operator(,) delimiter(')string(ponder big, happy thoughts)delimiter(')operator(\))operator(,) - pre_type(array)operator(()delimiter(')string(recycle tired, old phrases)delimiter(')operator(,) delimiter(')string(ponder big, happy thoughts)delimiter(')operator(,) delimiter(')string(sleep and dream peacefully)delimiter(')operator(\))operator(\))operator(;) +local_variable($lists) operator(=) predefined(array)operator(() + predefined(array)operator(()string<delimiter(')content(just one thing)delimiter(')>operator(\))operator(,) + predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(Mutt Jeff)delimiter(')>operator(\))operator(,) + predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(Peter Paul Mary)delimiter(')>operator(\))operator(,) + predefined(array)operator(()string<delimiter(')content(To our parents)delimiter(')>operator(,) string<delimiter(')content(Mother Theresa)delimiter(')>operator(,) string<delimiter(')content(God)delimiter(')>operator(\))operator(,) + predefined(array)operator(()string<delimiter(')content(pastrami)delimiter(')>operator(,) string<delimiter(')content(ham and cheese)delimiter(')>operator(,) string<delimiter(')content(peanut butter and jelly)delimiter(')>operator(,) string<delimiter(')content(tuna)delimiter(')>operator(\))operator(,) + predefined(array)operator(()string<delimiter(')content(recycle tired, old phrases)delimiter(')>operator(,) string<delimiter(')content(ponder big, happy thoughts)delimiter(')>operator(\))operator(,) + predefined(array)operator(()string<delimiter(')content(recycle tired, old phrases)delimiter(')>operator(,) string<delimiter(')content(ponder big, happy thoughts)delimiter(')>operator(,) string<delimiter(')content(sleep and dream peacefully)delimiter(')>operator(\))operator(\))operator(;) reserved(foreach)operator(()local_variable($lists) reserved(as) local_variable($arr)operator(\)) operator({) - pre_type(echo) delimiter(')string(The list is: )delimiter(') operator(.) ident(commify_series)operator(()local_variable($arr)operator(\)) operator(.) delimiter(")string(.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(')content(The list is: )delimiter(')> operator(.) ident(commify_series)operator(()local_variable($arr)operator(\)) operator(.) string<delimiter(")content(.)char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_4.3) @@ -1465,32 +1465,32 @@ comment(// AFAICT you cannot grow / shrink an array to an arbitrary size. Howeve comment(// * Grow an array by appending an element using subscrip notation, or using) comment(// either 'array_unshift' or 'array_push' to add one or more elements) -local_variable($arr)operator([)operator(]) operator(=) delimiter(')string(one)delimiter(')operator(;) -ident(array_unshift)operator(()local_variable($arr)operator(,) delimiter(')string(one)delimiter(')operator(,) delimiter(')string(two)delimiter(')operator(,) delimiter(')string(three)delimiter(')operator(\))operator(;) -ident(array_push)operator(()local_variable($arr)operator(,) delimiter(')string(one)delimiter(')operator(,) delimiter(')string(two)delimiter(')operator(,) delimiter(')string(three)delimiter(')operator(\))operator(;) +local_variable($arr)operator([)operator(]) operator(=) string<delimiter(')content(one)delimiter(')>operator(;) +predefined(array_unshift)operator(()local_variable($arr)operator(,) string<delimiter(')content(one)delimiter(')>operator(,) string<delimiter(')content(two)delimiter(')>operator(,) string<delimiter(')content(three)delimiter(')>operator(\))operator(;) +predefined(array_push)operator(()local_variable($arr)operator(,) string<delimiter(')content(one)delimiter(')>operator(,) string<delimiter(')content(two)delimiter(')>operator(,) string<delimiter(')content(three)delimiter(')>operator(\))operator(;) comment(// * Shrink an array by using 'unset' to remove one or more specific elements, or) comment(// either 'array_shift' or 'array_pop' to remove an element from the ends) -pre_type(unset)operator(()local_variable($arr)operator([)local_variable($idx1)operator(])operator(,) local_variable($arr)operator([)local_variable($idx2)operator(])operator(,) local_variable($arr)operator([)local_variable($idx3)operator(])operator(\))operator(;) -local_variable($item) operator(=) ident(array_shift)operator(()local_variable($arr)operator(\))operator(;) -local_variable($item) operator(=) ident(array_pop)operator(()local_variable($arr)operator(\))operator(;) +predefined(unset)operator(()local_variable($arr)operator([)local_variable($idx1)operator(])operator(,) local_variable($arr)operator([)local_variable($idx2)operator(])operator(,) local_variable($arr)operator([)local_variable($idx3)operator(])operator(\))operator(;) +local_variable($item) operator(=) predefined(array_shift)operator(()local_variable($arr)operator(\))operator(;) +local_variable($item) operator(=) predefined(array_pop)operator(()local_variable($arr)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(what_about_the_array)operator(()operator(\)) +reserved(function) ident(what_about_the_array)operator(()operator(\)) operator({) - pre_type(global) local_variable($people)operator(;) + reserved(global) local_variable($people)operator(;) - pre_type(echo) delimiter(')string(The array now has )delimiter(') operator(.) ident(count)operator(()local_variable($people)operator(\)) operator(.) delimiter(")string( elements)char(\\n)delimiter(")operator(;) - pre_type(echo) delimiter(')string(The index value of the last element is )delimiter(') operator(.) operator(()ident(count)operator(()local_variable($people)operator(\)) operator(-) integer(1)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) - pre_type(echo) delimiter(')string(Element #3 is )delimiter(') operator(.) local_variable($people)operator([)integer(3)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(')content(The array now has )delimiter(')> operator(.) predefined(count)operator(()local_variable($people)operator(\)) operator(.) string<delimiter(")content( elements)char(\\n)delimiter(")>operator(;) + predefined(echo) string<delimiter(')content(The index value of the last element is )delimiter(')> operator(.) operator(()predefined(count)operator(()local_variable($people)operator(\)) operator(-) integer(1)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) + predefined(echo) string<delimiter(')content(Element #3 is )delimiter(')> operator(.) local_variable($people)operator([)integer(3)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) -local_variable($people) operator(=) pre_type(array)operator(()delimiter(')string(Crosby)delimiter(')operator(,) delimiter(')string(Stills)delimiter(')operator(,) delimiter(')string(Nash)delimiter(')operator(,) delimiter(')string(Young)delimiter(')operator(\))operator(;) +local_variable($people) operator(=) predefined(array)operator(()string<delimiter(')content(Crosby)delimiter(')>operator(,) string<delimiter(')content(Stills)delimiter(')>operator(,) string<delimiter(')content(Nash)delimiter(')>operator(,) string<delimiter(')content(Young)delimiter(')>operator(\))operator(;) ident(what_about_the_array)operator(()operator(\))operator(;) -ident(array_pop)operator(()local_variable($people)operator(\))operator(;) +predefined(array_pop)operator(()local_variable($people)operator(\))operator(;) ident(what_about_the_array)operator(()operator(\))operator(;) comment(// Cannot, AFAICT, resize the array to an arbitrary size) @@ -1511,17 +1511,17 @@ local_variable($env) operator(=) local_variable($_ENV)operator(;) comment(// PHP can sort an array by key, so you don't need to get keys,) comment(// and then sort.) -ident(ksort)operator(()local_variable($env)operator(\))operator(;) +predefined(ksort)operator(()local_variable($env)operator(\))operator(;) reserved(foreach) operator(()local_variable($env) reserved(as) local_variable($key) operator(=>) local_variable($value)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($key)operator(})string(=)operator({)local_variable($value)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($key)operator(})content(=)operator({)local_variable($value)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// Literal translation of Perl example would be:) -local_variable($keys) operator(=) ident(array_keys)operator(()local_variable($_ENV)operator(\))operator(;) -ident(sort)operator(()local_variable($keys)operator(\))operator(;) +local_variable($keys) operator(=) predefined(array_keys)operator(()local_variable($_ENV)operator(\))operator(;) +predefined(sort)operator(()local_variable($keys)operator(\))operator(;) reserved(foreach) operator(()local_variable($keys) reserved(as) local_variable($key)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($key)operator(})string(=)operator({)local_variable($_ENV)operator([)local_variable($key)operator(])operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($key)operator(})content(=)operator({)local_variable($_ENV)operator([)local_variable($key)operator(])operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// This assumes that MAX_QUOTA is a named constant.) @@ -1533,20 +1533,20 @@ reserved(foreach) operator(()local_variable($all_users) reserved(as) local_varia operator(}) comment(// You can't modify array's elements in-place.) -local_variable($array) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) -local_variable($newarray) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($array) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) +local_variable($newarray) operator(=) predefined(array)operator(()operator(\))operator(;) reserved(foreach) operator(()local_variable($array) reserved(as) local_variable($item)operator(\)) operator({) local_variable($newarray)operator([)operator(]) operator(=) local_variable($item) operator(-) integer(1)operator(;) operator(}) -ident(print_r)operator(()local_variable($newarray)operator(\))operator(;) +predefined(print_r)operator(()local_variable($newarray)operator(\))operator(;) comment(// Before PHP 5, that is. You can precede the reference operator) comment(// before $item to get reference instead of copy.) -local_variable($array) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) +local_variable($array) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) reserved(foreach) operator(()local_variable($array) reserved(as) operator(&)local_variable($item)operator(\)) operator({) local_variable($item)operator(--)operator(;) operator(}) -ident(print_r)operator(()local_variable($array)operator(\))operator(;) +predefined(print_r)operator(()local_variable($array)operator(\))operator(;) comment(// TODO: explain the old each(\) and list(\) iteration construct.) comment(// foreach is new in PHP 4, and there are subtle differences.) @@ -1568,7 +1568,7 @@ operator(}) comment(// ------------) -local_variable($arraylen) operator(=) ident(count)operator(()local_variable($array)operator(\))operator(;) +local_variable($arraylen) operator(=) predefined(count)operator(()local_variable($array)operator(\))operator(;) reserved(for)operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) local_variable($arraylen)operator(;) local_variable($i)operator(++)operator(\)) operator({) @@ -1577,45 +1577,45 @@ operator(}) comment(// ----------------------------) -local_variable($fruits) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(')operator(,) delimiter(')string(Raspberry)delimiter(')operator(\))operator(;) +local_variable($fruits) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')>operator(,) string<delimiter(')content(Raspberry)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($fruits) reserved(as) operator(&)local_variable($fruit)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($fruit)operator(})string( tastes good in a pie.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($fruit)operator(})content( tastes good in a pie.)char(\\n)delimiter(")>operator(;) operator(}) -local_variable($fruitlen) operator(=) ident(count)operator(()local_variable($fruits)operator(\))operator(;) +local_variable($fruitlen) operator(=) predefined(count)operator(()local_variable($fruits)operator(\))operator(;) reserved(for)operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) local_variable($fruitlen)operator(;) local_variable($i)operator(++)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($fruits)operator([)local_variable($i)operator(])operator(})string( tastes good in a pie.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($fruits)operator([)local_variable($i)operator(])operator(})content( tastes good in a pie.)char(\\n)delimiter(")>operator(;) operator(}) comment(// ----------------------------) -local_variable($rogue_cats) operator(=) pre_type(array)operator(()delimiter(')string(Blackie)delimiter(')operator(,) delimiter(')string(Goldie)delimiter(')operator(,) delimiter(')string(Silkie)delimiter(')operator(\))operator(;) +local_variable($rogue_cats) operator(=) predefined(array)operator(()string<delimiter(')content(Blackie)delimiter(')>operator(,) string<delimiter(')content(Goldie)delimiter(')>operator(,) string<delimiter(')content(Silkie)delimiter(')>operator(\))operator(;) comment(// Take care to assign reference to '$rogue_cats' array via '=&') -local_variable($namelist)operator([)delimiter(')string(felines)delimiter(')operator(]) operator(=)operator(&) local_variable($rogue_cats)operator(;) +local_variable($namelist)operator([)string<delimiter(')content(felines)delimiter(')>operator(]) operator(=)operator(&) local_variable($rogue_cats)operator(;) comment(// Take care to make '$cat' a reference via '&$' to allow updating) -reserved(foreach)operator(()local_variable($namelist)operator([)delimiter(')string(felines)delimiter(')operator(]) reserved(as) operator(&)local_variable($cat)operator(\)) +reserved(foreach)operator(()local_variable($namelist)operator([)string<delimiter(')content(felines)delimiter(')>operator(]) reserved(as) operator(&)local_variable($cat)operator(\)) operator({) - local_variable($cat) operator(.)operator(=) delimiter(')string( [meow])delimiter(')operator(;) + local_variable($cat) operator(.)operator(=) string<delimiter(')content( [meow])delimiter(')>operator(;) operator(}) comment(// Via array reference) -reserved(foreach)operator(()local_variable($namelist)operator([)delimiter(')string(felines)delimiter(')operator(]) reserved(as) local_variable($cat)operator(\)) +reserved(foreach)operator(()local_variable($namelist)operator([)string<delimiter(')content(felines)delimiter(')>operator(]) reserved(as) local_variable($cat)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($cat)operator(})string( purrs hypnotically.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($cat)operator(})content( purrs hypnotically.)char(\\n)delimiter(")>operator(;) operator(}) -pre_type(echo) delimiter(")string(---)char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(---)char(\\n)delimiter(")>operator(;) comment(// Original array) reserved(foreach)operator(()local_variable($rogue_cats) reserved(as) local_variable($cat)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($cat)operator(})string( purrs hypnotically.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($cat)operator(})content( purrs hypnotically.)char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_4.6) @@ -1625,22 +1625,22 @@ comment(// is recommended to reindex numerically-indexed arrays since there will comment(// indexes) comment(// Remove duplicate values) -local_variable($unique) operator(=) ident(array_unique)operator(()local_variable($array)operator(\))operator(;) +local_variable($unique) operator(=) predefined(array_unique)operator(()local_variable($array)operator(\))operator(;) comment(// Remove duplicates, and reindex [for numerically-indexed arrays only]) -local_variable($unique) operator(=) ident(array_values)operator(()ident(array_unique)operator(()local_variable($array)operator(\))operator(\))operator(;) +local_variable($unique) operator(=) predefined(array_values)operator(()predefined(array_unique)operator(()local_variable($array)operator(\))operator(\))operator(;) comment(// or use:) -local_variable($unique) operator(=) ident(array_keys)operator(()ident(array_flip)operator(()local_variable($array)operator(\))operator(\))operator(;) +local_variable($unique) operator(=) predefined(array_keys)operator(()predefined(array_flip)operator(()local_variable($array)operator(\))operator(\))operator(;) comment(// ----------------------------) comment(// Selected Perl 'seen' examples) reserved(foreach)operator(()local_variable($list) reserved(as) local_variable($item)operator(\)) operator({) - reserved(if) operator(()operator(!)pre_type(isset)operator(()local_variable($seen)operator([)local_variable($item)operator(])operator(\))operator(\)) + reserved(if) operator(()operator(!)predefined(isset)operator(()local_variable($seen)operator([)local_variable($item)operator(])operator(\))operator(\)) operator({) - local_variable($seen)operator([)local_variable($item)operator(]) operator(=) constant(TRUE)operator(;) + local_variable($seen)operator([)local_variable($item)operator(]) operator(=) reserved(TRUE)operator(;) local_variable($unique)operator([)operator(]) operator(=) local_variable($item)operator(;) operator(}) operator(}) @@ -1654,7 +1654,7 @@ operator(}) comment(// ------------) -pre_type(function) ident(some_func)operator(()local_variable($item)operator(\)) +reserved(function) ident(some_func)operator(()local_variable($item)operator(\)) operator({) operator(;) comment(// Do something with '$item') operator(}) @@ -1666,41 +1666,41 @@ operator(}) comment(// ----------------------------) -reserved(foreach)operator(()ident(array_slice)operator(()ident(preg_split)operator(()delimiter(')string(/)string(\\)string(n/)delimiter(')operator(,) error(`)ident(who)error(`)operator(\))operator(,) integer(0)operator(,) integer(-1)operator(\)) reserved(as) local_variable($user_entry)operator(\)) +reserved(foreach)operator(()predefined(array_slice)operator(()predefined(preg_split)operator(()string<delimiter(')content(/)content(\\n)content(/)delimiter(')>operator(,) error(`)ident(who)error(`)operator(\))operator(,) integer(0)operator(,) operator(-)integer(1)operator(\)) reserved(as) local_variable($user_entry)operator(\)) operator({) - local_variable($user) operator(=) ident(preg_split)operator(()delimiter(')string(/)string(\\)string(s/)delimiter(')operator(,) local_variable($user_entry)operator(\))operator(;) + local_variable($user) operator(=) predefined(preg_split)operator(()string<delimiter(')content(/)content(\\s)content(/)delimiter(')>operator(,) local_variable($user_entry)operator(\))operator(;) local_variable($ucnt)operator([)local_variable($user)operator([)integer(0)operator(])operator(])operator(++)operator(;) operator(}) -ident(ksort)operator(()local_variable($ucnt)operator(\))operator(;) +predefined(ksort)operator(()local_variable($ucnt)operator(\))operator(;) -pre_type(echo) delimiter(")string(users logged in:)char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(users logged in:)char(\\n)delimiter(")>operator(;) reserved(foreach)operator(()local_variable($ucnt) reserved(as) local_variable($user) operator(=>) local_variable($cnt)operator(\)) operator({) - pre_type(echo) delimiter(")char(\\t)operator({)local_variable($user)operator(})string( => )operator({)local_variable($cnt)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")char(\\t)operator({)local_variable($user)operator(})content( => )operator({)local_variable($cnt)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_4.7) comment(// PHP offers the 'array_diff' and 'array_diff_assoc' functions to perform this task. Same) comment(// points as made about 'array_unique' apply here also) -local_variable($a) operator(=) pre_type(array)operator(()delimiter(')string(c)delimiter(')operator(,) delimiter(')string(a)delimiter(')operator(,) delimiter(')string(b)delimiter(')operator(,) delimiter(')string(d)delimiter(')operator(\))operator(;) -local_variable($b) operator(=) pre_type(array)operator(()delimiter(')string(c)delimiter(')operator(,) delimiter(')string(a)delimiter(')operator(,) delimiter(')string(b)delimiter(')operator(,) delimiter(')string(e)delimiter(')operator(\))operator(;) +local_variable($a) operator(=) predefined(array)operator(()string<delimiter(')content(c)delimiter(')>operator(,) string<delimiter(')content(a)delimiter(')>operator(,) string<delimiter(')content(b)delimiter(')>operator(,) string<delimiter(')content(d)delimiter(')>operator(\))operator(;) +local_variable($b) operator(=) predefined(array)operator(()string<delimiter(')content(c)delimiter(')>operator(,) string<delimiter(')content(a)delimiter(')>operator(,) string<delimiter(')content(b)delimiter(')>operator(,) string<delimiter(')content(e)delimiter(')>operator(\))operator(;) -local_variable($diff) operator(=) ident(array_diff)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(;) comment(// $diff -> [3] 'd') -local_variable($diff) operator(=) ident(array_diff)operator(()local_variable($b)operator(,) local_variable($a)operator(\))operator(;) comment(// $diff -> [3] 'e') +local_variable($diff) operator(=) predefined(array_diff)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(;) comment(// $diff -> [3] 'd') +local_variable($diff) operator(=) predefined(array_diff)operator(()local_variable($b)operator(,) local_variable($a)operator(\))operator(;) comment(// $diff -> [3] 'e') comment(// Numerically-indexed array, reindexed) -local_variable($diff) operator(=) ident(array_values)operator(()ident(array_diff)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(;) comment(// $diff -> [0] 'd') -local_variable($diff) operator(=) ident(array_values)operator(()ident(array_diff)operator(()local_variable($b)operator(,) local_variable($a)operator(\))operator(\))operator(;) comment(// $diff -> [0] 'e') +local_variable($diff) operator(=) predefined(array_values)operator(()predefined(array_diff)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(;) comment(// $diff -> [0] 'd') +local_variable($diff) operator(=) predefined(array_values)operator(()predefined(array_diff)operator(()local_variable($b)operator(,) local_variable($a)operator(\))operator(\))operator(;) comment(// $diff -> [0] 'e') comment(// ----------------------------) comment(// 1st Perl 'seen' example only) -local_variable($a) operator(=) pre_type(array)operator(()delimiter(')string(k1)delimiter(') operator(=>) integer(11)operator(,) delimiter(')string(k2)delimiter(') operator(=>) integer(12)operator(,) delimiter(')string(k4)delimiter(') operator(=>) integer(14)operator(\))operator(;) -local_variable($b) operator(=) pre_type(array)operator(()delimiter(')string(k1)delimiter(') operator(=>) integer(11)operator(,) delimiter(')string(k2)delimiter(') operator(=>) integer(12)operator(,) delimiter(')string(k3)delimiter(') operator(=>) integer(13)operator(\))operator(;) +local_variable($a) operator(=) predefined(array)operator(()string<delimiter(')content(k1)delimiter(')> operator(=>) integer(11)operator(,) string<delimiter(')content(k2)delimiter(')> operator(=>) integer(12)operator(,) string<delimiter(')content(k4)delimiter(')> operator(=>) integer(14)operator(\))operator(;) +local_variable($b) operator(=) predefined(array)operator(()string<delimiter(')content(k1)delimiter(')> operator(=>) integer(11)operator(,) string<delimiter(')content(k2)delimiter(')> operator(=>) integer(12)operator(,) string<delimiter(')content(k3)delimiter(')> operator(=>) integer(13)operator(\))operator(;) reserved(foreach)operator(()local_variable($b) reserved(as) local_variable($item) operator(=>) local_variable($value)operator(\)) operator({) local_variable($seen)operator([)local_variable($item)operator(]) operator(=) integer(1)operator(;) operator(}) @@ -1714,16 +1714,16 @@ comment(// ----------------------------) comment(// Conventional way: $hash = array('key1' => 1, 'key2' => 2\);) -local_variable($hash)operator([)delimiter(')string(key1)delimiter(')operator(]) operator(=) integer(1)operator(;) -local_variable($hash)operator([)delimiter(')string(key2)delimiter(')operator(]) operator(=) integer(2)operator(;) +local_variable($hash)operator([)string<delimiter(')content(key1)delimiter(')>operator(]) operator(=) integer(1)operator(;) +local_variable($hash)operator([)string<delimiter(')content(key2)delimiter(')>operator(]) operator(=) integer(2)operator(;) -local_variable($hash) operator(=) ident(array_combine)operator(()pre_type(array)operator(()delimiter(')string(key1)delimiter(')operator(,) delimiter(')string(key2)delimiter(')operator(\))operator(,) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(\))operator(\))operator(;) +local_variable($hash) operator(=) predefined(array_combine)operator(()predefined(array)operator(()string<delimiter(')content(key1)delimiter(')>operator(,) string<delimiter(')content(key2)delimiter(')>operator(\))operator(,) predefined(array)operator(()integer(1)operator(,) integer(2)operator(\))operator(\))operator(;) comment(// ------------) -local_variable($seen) operator(=) ident(array_slice)operator(()local_variable($b)operator(,) integer(0)operator(\))operator(;) +local_variable($seen) operator(=) predefined(array_slice)operator(()local_variable($b)operator(,) integer(0)operator(\))operator(;) -local_variable($seen) operator(=) ident(array_combine)operator(()ident(array_keys)operator(()local_variable($b)operator(\))operator(,) ident(array_fill)operator(()integer(0)operator(,) ident(count)operator(()local_variable($b)operator(\))operator(,) integer(1)operator(\))operator(\))operator(;) +local_variable($seen) operator(=) predefined(array_combine)operator(()predefined(array_keys)operator(()local_variable($b)operator(\))operator(,) predefined(array_fill)operator(()integer(0)operator(,) predefined(count)operator(()local_variable($b)operator(\))operator(,) integer(1)operator(\))operator(\))operator(;) comment(// @@PLEAC@@_4.8) comment(// PHP offers a number of array-based 'set operation' functions:) @@ -1733,67 +1733,67 @@ comment(// * difference: array_diff and family) comment(// which may be used for this type of task. Also, if returned arrays need to be) comment(// reindexed, 'array_slice($array, 0\)', or 'array_values($array\)' are useful) -local_variable($a) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(3)operator(,) integer(5)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(\))operator(;) -local_variable($b) operator(=) pre_type(array)operator(()integer(2)operator(,) integer(3)operator(,) integer(5)operator(,) integer(7)operator(,) integer(9)operator(\))operator(;) +local_variable($a) operator(=) predefined(array)operator(()integer(1)operator(,) integer(3)operator(,) integer(5)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(\))operator(;) +local_variable($b) operator(=) predefined(array)operator(()integer(2)operator(,) integer(3)operator(,) integer(5)operator(,) integer(7)operator(,) integer(9)operator(\))operator(;) -local_variable($union) operator(=) ident(array_values)operator(()ident(array_unique)operator(()ident(array_merge)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(\))operator(;) comment(// 1, 2, 3, 5, 6, 7, 8, 9) -local_variable($isect) operator(=) ident(array_values)operator(()ident(array_intersect)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(;) comment(// 3, 5, 7) -local_variable($diff) operator(=) ident(array_values)operator(()ident(array_diff)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(;) comment(// 1, 8) +local_variable($union) operator(=) predefined(array_values)operator(()predefined(array_unique)operator(()predefined(array_merge)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(\))operator(;) comment(// 1, 2, 3, 5, 6, 7, 8, 9) +local_variable($isect) operator(=) predefined(array_values)operator(()predefined(array_intersect)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(;) comment(// 3, 5, 7) +local_variable($diff) operator(=) predefined(array_values)operator(()predefined(array_diff)operator(()local_variable($a)operator(,) local_variable($b)operator(\))operator(\))operator(;) comment(// 1, 8) comment(// @@PLEAC@@_4.9) comment(// PHP offers the 'array_merge' function to perform this task. Duplicate values are retained,) comment(// but if arrays are numerically-indexed, resulting array is reindexed) -local_variable($arr1) operator(=) pre_type(array)operator(()delimiter(')string(c)delimiter(')operator(,) delimiter(')string(a)delimiter(')operator(,) delimiter(')string(b)delimiter(')operator(,) delimiter(')string(d)delimiter(')operator(\))operator(;) -local_variable($arr2) operator(=) pre_type(array)operator(()delimiter(')string(c)delimiter(')operator(,) delimiter(')string(a)delimiter(')operator(,) delimiter(')string(b)delimiter(')operator(,) delimiter(')string(e)delimiter(')operator(\))operator(;) +local_variable($arr1) operator(=) predefined(array)operator(()string<delimiter(')content(c)delimiter(')>operator(,) string<delimiter(')content(a)delimiter(')>operator(,) string<delimiter(')content(b)delimiter(')>operator(,) string<delimiter(')content(d)delimiter(')>operator(\))operator(;) +local_variable($arr2) operator(=) predefined(array)operator(()string<delimiter(')content(c)delimiter(')>operator(,) string<delimiter(')content(a)delimiter(')>operator(,) string<delimiter(')content(b)delimiter(')>operator(,) string<delimiter(')content(e)delimiter(')>operator(\))operator(;) -local_variable($new) operator(=) ident(array_merge)operator(()local_variable($arr1)operator(,) local_variable($arr2)operator(\))operator(;) comment(// $new -> 'c', 'a', 'b', 'd', 'c', 'a', 'b', 'd') +local_variable($new) operator(=) predefined(array_merge)operator(()local_variable($arr1)operator(,) local_variable($arr2)operator(\))operator(;) comment(// $new -> 'c', 'a', 'b', 'd', 'c', 'a', 'b', 'd') comment(// ----------------------------) -local_variable($members) operator(=) pre_type(array)operator(()delimiter(')string(Time)delimiter(')operator(,) delimiter(')string(Flies)delimiter(')operator(\))operator(;) -local_variable($initiates) operator(=) pre_type(array)operator(()delimiter(')string(An)delimiter(')operator(,) delimiter(')string(Arrow)delimiter(')operator(\))operator(;) +local_variable($members) operator(=) predefined(array)operator(()string<delimiter(')content(Time)delimiter(')>operator(,) string<delimiter(')content(Flies)delimiter(')>operator(\))operator(;) +local_variable($initiates) operator(=) predefined(array)operator(()string<delimiter(')content(An)delimiter(')>operator(,) string<delimiter(')content(Arrow)delimiter(')>operator(\))operator(;) -local_variable($members) operator(=) ident(array_merge)operator(()local_variable($members)operator(,) local_variable($initiates)operator(\))operator(;) +local_variable($members) operator(=) predefined(array_merge)operator(()local_variable($members)operator(,) local_variable($initiates)operator(\))operator(;) comment(// ------------) -local_variable($members) operator(=) pre_type(array)operator(()delimiter(')string(Time)delimiter(')operator(,) delimiter(')string(Flies)delimiter(')operator(\))operator(;) -local_variable($initiates) operator(=) pre_type(array)operator(()delimiter(')string(An)delimiter(')operator(,) delimiter(')string(Arrow)delimiter(')operator(\))operator(;) +local_variable($members) operator(=) predefined(array)operator(()string<delimiter(')content(Time)delimiter(')>operator(,) string<delimiter(')content(Flies)delimiter(')>operator(\))operator(;) +local_variable($initiates) operator(=) predefined(array)operator(()string<delimiter(')content(An)delimiter(')>operator(,) string<delimiter(')content(Arrow)delimiter(')>operator(\))operator(;) comment(// 'array_splice' is the PHP equivalent to Perl's 'splice') -ident(array_splice)operator(()local_variable($members)operator(,) integer(2)operator(,) integer(0)operator(,) ident(array_merge)operator(()pre_type(array)operator(()delimiter(')string(Like)delimiter(')operator(\))operator(,) local_variable($initiates)operator(\))operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($members)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(array_splice)operator(()local_variable($members)operator(,) integer(2)operator(,) integer(0)operator(,) predefined(array_merge)operator(()predefined(array)operator(()string<delimiter(')content(Like)delimiter(')>operator(\))operator(,) local_variable($initiates)operator(\))operator(\))operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($members)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) -ident(array_splice)operator(()local_variable($members)operator(,) integer(0)operator(,) integer(1)operator(,) pre_type(array)operator(()delimiter(')string(Fruit)delimiter(')operator(\))operator(\))operator(;) -ident(array_splice)operator(()local_variable($members)operator(,) integer(-2)operator(,) integer(2)operator(,) pre_type(array)operator(()delimiter(')string(A)delimiter(')operator(,) delimiter(')string(Banana)delimiter(')operator(\))operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($members)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(array_splice)operator(()local_variable($members)operator(,) integer(0)operator(,) integer(1)operator(,) predefined(array)operator(()string<delimiter(')content(Fruit)delimiter(')>operator(\))operator(\))operator(;) +predefined(array_splice)operator(()local_variable($members)operator(,) operator(-)integer(2)operator(,) integer(2)operator(,) predefined(array)operator(()string<delimiter(')content(A)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')>operator(\))operator(\))operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($members)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_4.10) -local_variable($reversed) operator(=) ident(array_reverse)operator(()local_variable($array)operator(\))operator(;) +local_variable($reversed) operator(=) predefined(array_reverse)operator(()local_variable($array)operator(\))operator(;) comment(// ----------------------------) -reserved(foreach)operator(()ident(array_reverse)operator(()local_variable($array)operator(\)) reserved(as) local_variable($item)operator(\)) +reserved(foreach)operator(()predefined(array_reverse)operator(()local_variable($array)operator(\)) reserved(as) local_variable($item)operator(\)) operator({) operator(;) comment(// ... do something with '$item' ...) operator(}) comment(// ------------) -reserved(for)operator(()local_variable($i) operator(=) ident(count)operator(()local_variable($array)operator(\)) operator(-) integer(1)operator(;) local_variable($i) operator(>=) integer(0)operator(;) local_variable($i)operator(--)operator(\)) +reserved(for)operator(()local_variable($i) operator(=) predefined(count)operator(()local_variable($array)operator(\)) operator(-) integer(1)operator(;) local_variable($i) operator(>=) integer(0)operator(;) local_variable($i)operator(--)operator(\)) operator({) operator(;) comment(// ... do something with '$array[$i]' ...) operator(}) comment(// ----------------------------) -ident(sort)operator(()local_variable($array)operator(\))operator(;) -local_variable($array) operator(=) ident(array_reverse)operator(()local_variable($array)operator(\))operator(;) +predefined(sort)operator(()local_variable($array)operator(\))operator(;) +local_variable($array) operator(=) predefined(array_reverse)operator(()local_variable($array)operator(\))operator(;) comment(// ------------) -ident(rsort)operator(()local_variable($array)operator(\))operator(;) +predefined(rsort)operator(()local_variable($array)operator(\))operator(;) comment(// @@PLEAC@@_4.11) comment(// Array elements can be deleted using 'unset'; removing several elements would require applying) @@ -1803,18 +1803,18 @@ comment(// Where elements need to be removed, and those elements also returned, comment(// combine both operations in a function. This is the approach taken here in implementing both) comment(// 'shiftN' and 'popN', and it is these functions that are used in the examples) -pre_type(function) ident(popN)operator(()operator(&)local_variable($arr)operator(,) local_variable($n)operator(\)) +reserved(function) ident(popN)operator(()operator(&)local_variable($arr)operator(,) local_variable($n)operator(\)) operator({) - local_variable($ret) operator(=) ident(array_slice)operator(()local_variable($arr)operator(,) operator(-)operator(()local_variable($n)operator(\))operator(,) local_variable($n)operator(\))operator(;) - local_variable($arr) operator(=) ident(array_slice)operator(()local_variable($arr)operator(,) integer(0)operator(,) ident(count)operator(()local_variable($arr)operator(\)) operator(-) local_variable($n)operator(\))operator(;) - reserved(return) local_variable($ret)operator(;) + local_variable($ret) operator(=) predefined(array_slice)operator(()local_variable($arr)operator(,) operator(-)operator(()local_variable($n)operator(\))operator(,) local_variable($n)operator(\))operator(;) + local_variable($arr) operator(=) predefined(array_slice)operator(()local_variable($arr)operator(,) integer(0)operator(,) predefined(count)operator(()local_variable($arr)operator(\)) operator(-) local_variable($n)operator(\))operator(;) + predefined(return) local_variable($ret)operator(;) operator(}) -pre_type(function) ident(shiftN)operator(()operator(&)local_variable($arr)operator(,) local_variable($n)operator(\)) +reserved(function) ident(shiftN)operator(()operator(&)local_variable($arr)operator(,) local_variable($n)operator(\)) operator({) - local_variable($ret) operator(=) ident(array_slice)operator(()local_variable($arr)operator(,) integer(0)operator(,) local_variable($n)operator(\))operator(;) - local_variable($arr) operator(=) ident(array_slice)operator(()local_variable($arr)operator(,) local_variable($n)operator(\))operator(;) - reserved(return) local_variable($ret)operator(;) + local_variable($ret) operator(=) predefined(array_slice)operator(()local_variable($arr)operator(,) integer(0)operator(,) local_variable($n)operator(\))operator(;) + local_variable($arr) operator(=) predefined(array_slice)operator(()local_variable($arr)operator(,) local_variable($n)operator(\))operator(;) + predefined(return) local_variable($ret)operator(;) operator(}) comment(// ------------) @@ -1827,19 +1827,19 @@ local_variable($end) operator(=) ident(popN)operator(()local_variable($array)ope comment(// ------------) -local_variable($friends) operator(=) pre_type(array)operator(()delimiter(')string(Peter)delimiter(')operator(,) delimiter(')string(Paul)delimiter(')operator(,) delimiter(')string(Mary)delimiter(')operator(,) delimiter(')string(Jim)delimiter(')operator(,) delimiter(')string(Tim)delimiter(')operator(\))operator(;) +local_variable($friends) operator(=) predefined(array)operator(()string<delimiter(')content(Peter)delimiter(')>operator(,) string<delimiter(')content(Paul)delimiter(')>operator(,) string<delimiter(')content(Mary)delimiter(')>operator(,) string<delimiter(')content(Jim)delimiter(')>operator(,) string<delimiter(')content(Tim)delimiter(')>operator(\))operator(;) -pre_type(list)operator(()local_variable($this_)operator(,) local_variable($that)operator(\)) operator(=) ident(shiftN)operator(()local_variable($friends)operator(,) integer(2)operator(\))operator(;) +predefined(list)operator(()local_variable($this_)operator(,) local_variable($that)operator(\)) operator(=) ident(shiftN)operator(()local_variable($friends)operator(,) integer(2)operator(\))operator(;) -pre_type(echo) delimiter(")operator({)local_variable($this_)operator(})string( )operator({)local_variable($that)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($this_)operator(})content( )operator({)local_variable($that)operator(})char(\\n)delimiter(")>operator(;) comment(// ------------) -local_variable($beverages) operator(=) pre_type(array)operator(()delimiter(')string(Dew)delimiter(')operator(,) delimiter(')string(Jolt)delimiter(')operator(,) delimiter(')string(Cola)delimiter(')operator(,) delimiter(')string(Sprite)delimiter(')operator(,) delimiter(')string(Fresca)delimiter(')operator(\))operator(;) +local_variable($beverages) operator(=) predefined(array)operator(()string<delimiter(')content(Dew)delimiter(')>operator(,) string<delimiter(')content(Jolt)delimiter(')>operator(,) string<delimiter(')content(Cola)delimiter(')>operator(,) string<delimiter(')content(Sprite)delimiter(')>operator(,) string<delimiter(')content(Fresca)delimiter(')>operator(\))operator(;) local_variable($pair) operator(=) ident(popN)operator(()local_variable($beverages)operator(,) integer(2)operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($pair)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($pair)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_4.12) comment(// This section illustrates various 'find first' techniques. The Perl examples all use an) @@ -1855,7 +1855,7 @@ comment(// means of terminating the search once a match has been found. It wou comment(// function were to have a third parameter, a Boolean flag indicating whether to traverse) comment(// the whole array, or quit after first match [next version, maybe :\) ?]) -local_variable($found) operator(=) constant(FALSE)operator(;) +local_variable($found) operator(=) reserved(FALSE)operator(;) reserved(foreach)operator(()local_variable($array) reserved(as) local_variable($item)operator(\)) operator({) @@ -1864,7 +1864,7 @@ operator({) comment(// Found - save and leave) local_variable($match) operator(=) local_variable($item)operator(;) - local_variable($found) operator(=) constant(TRUE)operator(;) + local_variable($found) operator(=) reserved(TRUE)operator(;) reserved(break)operator(;) operator(}) @@ -1879,13 +1879,13 @@ operator(}) comment(// ------------) -pre_type(function) ident(predicate)operator(()local_variable($element)operator(\)) +reserved(function) ident(predicate)operator(()local_variable($element)operator(\)) operator({) - reserved(if) operator(()ident(criterion)operator(\)) reserved(return) constant(TRUE)operator(;) - reserved(return) constant(FALSE)operator(;) + reserved(if) operator(()ident(criterion)operator(\)) predefined(return) reserved(TRUE)operator(;) + predefined(return) reserved(FALSE)operator(;) operator(}) -local_variable($match) operator(=) ident(array_slice)operator(()ident(array_filter)operator(()local_variable($array)operator(,) delimiter(')string(predicate)delimiter(')operator(\))operator(,) integer(0)operator(,) integer(1)operator(\))operator(;) +local_variable($match) operator(=) predefined(array_slice)operator(()predefined(array_filter)operator(()local_variable($array)operator(,) string<delimiter(')content(predicate)delimiter(')>operator(\))operator(,) integer(0)operator(,) integer(1)operator(\))operator(;) reserved(if) operator(()local_variable($match)operator(\)) operator({) @@ -1898,11 +1898,11 @@ operator(}) comment(// ----------------------------) -pre_type(class) constant(Employee) +reserved(class) constant(Employee) operator({) - pre_type(public) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(;) + reserved(public) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(;) - pre_type(public) pre_type(function) ident(__construct)operator(()local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(,) local_variable($category)operator(\)) + reserved(public) reserved(function) ident(__construct)operator(()local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(,) local_variable($category)operator(\)) operator({) local_variable($this)operator(->)ident(name) operator(=) local_variable($name)operator(;) local_variable($this)operator(->)ident(age) operator(=) local_variable($age)operator(;) @@ -1914,24 +1914,24 @@ operator(}) comment(// ------------) -local_variable($employees) operator(=) pre_type(array)operator(() - pre_type(new) constant(Employee)operator(()delimiter(')string(sdf)delimiter(')operator(,) integer(27)operator(,) integer(12345)operator(,) integer(47000)operator(,) delimiter(')string(Engineer)delimiter(')operator(\))operator(,) - pre_type(new) constant(Employee)operator(()delimiter(')string(ajb)delimiter(')operator(,) integer(32)operator(,) integer(12376)operator(,) integer(51000)operator(,) delimiter(')string(Programmer)delimiter(')operator(\))operator(,) - pre_type(new) constant(Employee)operator(()delimiter(')string(dgh)delimiter(')operator(,) integer(31)operator(,) integer(12355)operator(,) integer(45000)operator(,) delimiter(')string(Engineer)delimiter(')operator(\))operator(\))operator(;) +local_variable($employees) operator(=) predefined(array)operator(() + reserved(new) constant(Employee)operator(()string<delimiter(')content(sdf)delimiter(')>operator(,) integer(27)operator(,) integer(12345)operator(,) integer(47000)operator(,) string<delimiter(')content(Engineer)delimiter(')>operator(\))operator(,) + reserved(new) constant(Employee)operator(()string<delimiter(')content(ajb)delimiter(')>operator(,) integer(32)operator(,) integer(12376)operator(,) integer(51000)operator(,) string<delimiter(')content(Programmer)delimiter(')>operator(\))operator(,) + reserved(new) constant(Employee)operator(()string<delimiter(')content(dgh)delimiter(')>operator(,) integer(31)operator(,) integer(12355)operator(,) integer(45000)operator(,) string<delimiter(')content(Engineer)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -pre_type(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) +reserved(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) operator({) reserved(foreach)operator(()local_variable($arr) reserved(as) local_variable($key)operator(\)) local_variable($lambda)operator(()local_variable($updarr)operator(,) local_variable($key)operator(\))operator(;) - reserved(return) local_variable($updarr)operator(;) + predefined(return) local_variable($updarr)operator(;) operator(}) -pre_type(function) ident(highest_salaried_engineer)operator(()operator(&)local_variable($arr)operator(,) local_variable($employee)operator(\)) +reserved(function) ident(highest_salaried_engineer)operator(()operator(&)local_variable($arr)operator(,) local_variable($employee)operator(\)) operator({) - pre_type(static) local_variable($highest_salary) operator(=) integer(0)operator(;) + reserved(static) local_variable($highest_salary) operator(=) integer(0)operator(;) - reserved(if) operator(()local_variable($employee)operator(->)ident(category) operator(==) delimiter(')string(Engineer)delimiter(')operator(\)) + reserved(if) operator(()local_variable($employee)operator(->)ident(category) operator(==) string<delimiter(')content(Engineer)delimiter(')>operator(\)) operator({) reserved(if) operator(()local_variable($employee)operator(->)ident(salary) operator(>) local_variable($highest_salary)operator(\)) operator({) @@ -1946,49 +1946,49 @@ comment(// ------------) comment(// 'array_update' custom function is modelled on 'array_reduce' except that it allows the) comment(// return of an array, contents and length of which are entirely dependant on what the) comment(// callback function does. Here, it is logically working in a 'find first' capacity) -local_variable($highest_salaried_engineer) operator(=) ident(array_update)operator(()local_variable($employees)operator(,) delimiter(')string(highest_salaried_engineer)delimiter(')operator(,) pre_type(array)operator(()operator(\))operator(\))operator(;) +local_variable($highest_salaried_engineer) operator(=) ident(array_update)operator(()local_variable($employees)operator(,) string<delimiter(')content(highest_salaried_engineer)delimiter(')>operator(,) predefined(array)operator(()operator(\))operator(\))operator(;) -pre_type(echo) delimiter(')string(Highest paid engineer is: )delimiter(') operator(.) local_variable($highest_salaried_engineer)operator([)integer(0)operator(])operator(->)ident(name) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(')content(Highest paid engineer is: )delimiter(')> operator(.) local_variable($highest_salaried_engineer)operator([)integer(0)operator(])operator(->)ident(name) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_4.13) comment(// PHP implements 'grep' functionality [as embodied in the current section] in the 'array_filter') comment(// function) -pre_type(function) ident(predicate)operator(()local_variable($element)operator(\)) +reserved(function) ident(predicate)operator(()local_variable($element)operator(\)) operator({) - reserved(if) operator(()ident(criterion)operator(\)) reserved(return) constant(TRUE)operator(;) - reserved(return) constant(FALSE)operator(;) + reserved(if) operator(()ident(criterion)operator(\)) predefined(return) reserved(TRUE)operator(;) + predefined(return) reserved(FALSE)operator(;) operator(}) -local_variable($matching) operator(=) ident(array_filter)operator(()local_variable($list)operator(,) delimiter(')string(predicate)delimiter(')operator(\))operator(;) +local_variable($matching) operator(=) predefined(array_filter)operator(()local_variable($list)operator(,) string<delimiter(')content(predicate)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($bigs) operator(=) ident(array_filter)operator(()local_variable($nums)operator(,) ident(create_function)operator(()delimiter(')string($n)delimiter(')operator(,) delimiter(')string(return $n > 1000000;)delimiter(')operator(\))operator(\))operator(;) +local_variable($bigs) operator(=) predefined(array_filter)operator(()local_variable($nums)operator(,) ident(create_function)operator(()string<delimiter(')content($n)delimiter(')>operator(,) string<delimiter(')content(return $n > 1000000;)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -pre_type(function) ident(is_pig)operator(()local_variable($user)operator(\)) +reserved(function) ident(is_pig)operator(()local_variable($user)operator(\)) operator({) - local_variable($user_details) operator(=) ident(preg_split)operator(()delimiter(')string(/()string(\\)string(s\)+/)delimiter(')operator(,) local_variable($user)operator(\))operator(;) + local_variable($user_details) operator(=) predefined(preg_split)operator(()string<delimiter(')content(/()content(\\s)content(\)+/)delimiter(')>operator(,) local_variable($user)operator(\))operator(;) comment(// Assuming field 5 is the resource being compared) - reserved(return) local_variable($user_details)operator([)integer(5)operator(]) operator(>) integer(1)ident(e7)operator(;) + predefined(return) local_variable($user_details)operator([)integer(5)operator(]) operator(>) integer(1)ident(e7)operator(;) operator(}) -local_variable($pigs) operator(=) ident(array_filter)operator(()ident(array_slice)operator(()ident(preg_split)operator(()delimiter(')string(/)string(\\)string(n/)delimiter(')operator(,) error(`)ident(who) operator(-)ident(u)error(`)operator(\))operator(,) integer(0)operator(,) integer(-1)operator(\))operator(,) delimiter(')string(is_pig)delimiter(')operator(\))operator(;) +local_variable($pigs) operator(=) predefined(array_filter)operator(()predefined(array_slice)operator(()predefined(preg_split)operator(()string<delimiter(')content(/)content(\\n)content(/)delimiter(')>operator(,) error(`)ident(who) operator(-)ident(u)error(`)operator(\))operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(,) string<delimiter(')content(is_pig)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($matching) operator(=) ident(array_filter)operator(()ident(array_slice)operator(()ident(preg_split)operator(()delimiter(')string(/)string(\\)string(n/)delimiter(')operator(,) error(`)ident(who)error(`)operator(\))operator(,) integer(0)operator(,) integer(-1)operator(\))operator(,) - ident(create_function)operator(()delimiter(')string($user)delimiter(')operator(,) delimiter(')string(return preg_match()char(\\')string(/^gnat /)char(\\')string(, $user\);)delimiter(')operator(\))operator(\))operator(;) +local_variable($matching) operator(=) predefined(array_filter)operator(()predefined(array_slice)operator(()predefined(preg_split)operator(()string<delimiter(')content(/)content(\\n)content(/)delimiter(')>operator(,) error(`)ident(who)error(`)operator(\))operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(,) + ident(create_function)operator(()string<delimiter(')content($user)delimiter(')>operator(,) string<delimiter(')content(return preg_match()content(\\')content(/^gnat /)content(\\')content(, $user\);)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -pre_type(class) constant(Employee) +reserved(class) constant(Employee) operator({) - pre_type(public) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(;) + reserved(public) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(;) - pre_type(public) pre_type(function) ident(__construct)operator(()local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(,) local_variable($category)operator(\)) + reserved(public) reserved(function) ident(__construct)operator(()local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(,) local_variable($category)operator(\)) operator({) local_variable($this)operator(->)ident(name) operator(=) local_variable($name)operator(;) local_variable($this)operator(->)ident(age) operator(=) local_variable($age)operator(;) @@ -2000,15 +2000,15 @@ operator(}) comment(// ------------) -local_variable($employees) operator(=) pre_type(array)operator(() - pre_type(new) constant(Employee)operator(()delimiter(')string(sdf)delimiter(')operator(,) integer(27)operator(,) integer(12345)operator(,) integer(47000)operator(,) delimiter(')string(Engineer)delimiter(')operator(\))operator(,) - pre_type(new) constant(Employee)operator(()delimiter(')string(ajb)delimiter(')operator(,) integer(32)operator(,) integer(12376)operator(,) integer(51000)operator(,) delimiter(')string(Programmer)delimiter(')operator(\))operator(,) - pre_type(new) constant(Employee)operator(()delimiter(')string(dgh)delimiter(')operator(,) integer(31)operator(,) integer(12355)operator(,) integer(45000)operator(,) delimiter(')string(Engineer)delimiter(')operator(\))operator(\))operator(;) +local_variable($employees) operator(=) predefined(array)operator(() + reserved(new) constant(Employee)operator(()string<delimiter(')content(sdf)delimiter(')>operator(,) integer(27)operator(,) integer(12345)operator(,) integer(47000)operator(,) string<delimiter(')content(Engineer)delimiter(')>operator(\))operator(,) + reserved(new) constant(Employee)operator(()string<delimiter(')content(ajb)delimiter(')>operator(,) integer(32)operator(,) integer(12376)operator(,) integer(51000)operator(,) string<delimiter(')content(Programmer)delimiter(')>operator(\))operator(,) + reserved(new) constant(Employee)operator(()string<delimiter(')content(dgh)delimiter(')>operator(,) integer(31)operator(,) integer(12355)operator(,) integer(45000)operator(,) string<delimiter(')content(Engineer)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -local_variable($engineers) operator(=) ident(array_filter)operator(()local_variable($employees)operator(,) - ident(create_function)operator(()delimiter(')string($employee)delimiter(')operator(,) delimiter(')string(return $employee->category == "Engineer";)delimiter(')operator(\))operator(\))operator(;) +local_variable($engineers) operator(=) predefined(array_filter)operator(()local_variable($employees)operator(,) + ident(create_function)operator(()string<delimiter(')content($employee)delimiter(')>operator(,) string<delimiter(')content(return $employee->category == "Engineer";)delimiter(')>operator(\))operator(\))operator(;) comment(// @@PLEAC@@_4.14) comment(// PHP offers a rich set of sorting functions. Key features:) @@ -2025,55 +2025,55 @@ comment(// 'natural order' [i.e. 1 before 10 before 100 (ascending\)] is retai comment(// the elements are alphanumeric e.g. 'z1', 'z10' then 'natsort' should be) comment(// used [note: beware of 'natsort' with negative numbers; prefer 'sort' or 'asort']) -local_variable($unsorted) operator(=) pre_type(array)operator(()integer(7)operator(,) integer(12)operator(,) integer(-13)operator(,) integer(2)operator(,) integer(100)operator(,) integer(5)operator(,) integer(1)operator(,) integer(-2)operator(,) integer(23)operator(,) integer(3)operator(,) integer(6)operator(,) integer(4)operator(\))operator(;) +local_variable($unsorted) operator(=) predefined(array)operator(()integer(7)operator(,) integer(12)operator(,) operator(-)integer(13)operator(,) integer(2)operator(,) integer(100)operator(,) integer(5)operator(,) integer(1)operator(,) operator(-)integer(2)operator(,) integer(23)operator(,) integer(3)operator(,) integer(6)operator(,) integer(4)operator(\))operator(;) -ident(sort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) -ident(rsort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) +predefined(sort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) +predefined(rsort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) -ident(asort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) -ident(arsort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) +predefined(asort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) +predefined(arsort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) -ident(natsort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// -2, -13, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) +predefined(natsort)operator(()local_variable($unsorted)operator(\))operator(;) comment(// -2, -13, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) comment(// ------------) -pre_type(function) ident(ascend)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) operator({) reserved(return) local_variable($left) operator(>) local_variable($right)operator(;) operator(}) -pre_type(function) ident(descend)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) operator({) reserved(return) local_variable($left) operator(<) local_variable($right)operator(;) operator(}) +reserved(function) ident(ascend)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) operator({) predefined(return) local_variable($left) operator(>) local_variable($right)operator(;) operator(}) +reserved(function) ident(descend)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) operator({) predefined(return) local_variable($left) operator(<) local_variable($right)operator(;) operator(}) comment(// ------------) -ident(usort)operator(()local_variable($unsorted)operator(,) delimiter(')string(ascend)delimiter(')operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) -ident(usort)operator(()local_variable($unsorted)operator(,) delimiter(')string(descend)delimiter(')operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) +predefined(usort)operator(()local_variable($unsorted)operator(,) string<delimiter(')content(ascend)delimiter(')>operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) +predefined(usort)operator(()local_variable($unsorted)operator(,) string<delimiter(')content(descend)delimiter(')>operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) -ident(uasort)operator(()local_variable($unsorted)operator(,) delimiter(')string(ascend)delimiter(')operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) -ident(uasort)operator(()local_variable($unsorted)operator(,) delimiter(')string(descend)delimiter(')operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) +predefined(uasort)operator(()local_variable($unsorted)operator(,) string<delimiter(')content(ascend)delimiter(')>operator(\))operator(;) comment(// -13, -2, 1, 2, 3, 4, 5, 6, 7, 12, 23, 100) +predefined(uasort)operator(()local_variable($unsorted)operator(,) string<delimiter(')content(descend)delimiter(')>operator(\))operator(;) comment(// 100, 23, 12, 7, 6, 5, 4, 3, 2, 1, -2, -13) comment(// ----------------------------) -pre_type(function) ident(kill_process)operator(()local_variable($pid)operator(\)) +reserved(function) ident(kill_process)operator(()local_variable($pid)operator(\)) operator({) comment(// Is 'killable' ?) - reserved(if) operator(()operator(!)ident(posix_kill)operator(()local_variable($pid)operator(,) integer(0)operator(\))operator(\)) reserved(return)operator(;) + reserved(if) operator(()operator(!)ident(posix_kill)operator(()local_variable($pid)operator(,) integer(0)operator(\))operator(\)) predefined(return)operator(;) comment(// Ok, so kill in two stages) ident(posix_kill)operator(()local_variable($pid)operator(,) integer(15)operator(\))operator(;) comment(// SIGTERM) - ident(sleep)operator(()integer(1)operator(\))operator(;) + predefined(sleep)operator(()integer(1)operator(\))operator(;) ident(posix_kill)operator(()local_variable($pid)operator(,) integer(9)operator(\))operator(;) comment(// SIGKILL) operator(}) -pre_type(function) ident(pid)operator(()local_variable($pentry)operator(\)) +reserved(function) ident(pid)operator(()local_variable($pentry)operator(\)) operator({) - local_variable($p) operator(=) ident(preg_split)operator(()delimiter(')string(/)string(\\)string(s/)delimiter(')operator(,) ident(trim)operator(()local_variable($pentry)operator(\))operator(\))operator(;) - reserved(return) local_variable($p)operator([)integer(0)operator(])operator(;) + local_variable($p) operator(=) predefined(preg_split)operator(()string<delimiter(')content(/)content(\\s)content(/)delimiter(')>operator(,) predefined(trim)operator(()local_variable($pentry)operator(\))operator(\))operator(;) + predefined(return) local_variable($p)operator([)integer(0)operator(])operator(;) operator(}) -local_variable($processes) operator(=) ident(array_map)operator(()delimiter(')string(pid)delimiter(')operator(,) ident(array_slice)operator(()ident(preg_split)operator(()delimiter(')string(/)string(\\)string(n/)delimiter(')operator(,) error(`)ident(ps) ident(ax)error(`)operator(\))operator(,) integer(1)operator(,) integer(-1)operator(\))operator(\))operator(;) -ident(sort)operator(()local_variable($processes)operator(\))operator(;) +local_variable($processes) operator(=) predefined(array_map)operator(()string<delimiter(')content(pid)delimiter(')>operator(,) predefined(array_slice)operator(()predefined(preg_split)operator(()string<delimiter(')content(/)content(\\n)content(/)delimiter(')>operator(,) error(`)ident(ps) ident(ax)error(`)operator(\))operator(,) integer(1)operator(,) operator(-)integer(1)operator(\))operator(\))operator(;) +predefined(sort)operator(()local_variable($processes)operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( ,)delimiter(')operator(,) local_variable($processes)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( ,)delimiter(')>operator(,) local_variable($processes)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) -pre_type(echo) delimiter(')string(Enter a pid to kill: )delimiter(')operator(;) -reserved(if) operator(()operator(()local_variable($pid) operator(=) ident(trim)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(\))operator(\)) +predefined(echo) string<delimiter(')content(Enter a pid to kill: )delimiter(')>operator(;) +reserved(if) operator(()operator(()local_variable($pid) operator(=) predefined(trim)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(\))operator(\)) ident(kill_process)operator(()local_variable($pid)operator(\))operator(;) comment(// @@PLEAC@@_4.15) @@ -2083,15 +2083,15 @@ comment(// A significant difference from the Perl examples is that these functio comment(// inplace sorters, so it is the original array that is modified. Where this must) comment(// be prevented a copy of the array can be made and sorted) -pre_type(function) ident(comparator)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) +reserved(function) ident(comparator)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) operator({) operator(;) comment(// Compare '$left' with '$right' returning result) operator(}) comment(// ------------) -local_variable($ordered) operator(=) ident(array_slice)operator(()local_variable($unordered)operator(\))operator(;) -ident(usort)operator(()local_variable($ordered)operator(,) delimiter(')string(comparator)delimiter(')operator(\))operator(;) +local_variable($ordered) operator(=) predefined(array_slice)operator(()local_variable($unordered)operator(\))operator(;) +predefined(usort)operator(()local_variable($ordered)operator(,) string<delimiter(')content(comparator)delimiter(')>operator(\))operator(;) comment(// ----------------------------) @@ -2099,7 +2099,7 @@ comment(// The Perl example looks like it is creating a hash using computed valu comment(// array values as the value, sorting on the computed key, then extracting the sorted) comment(// values and placing them back into an array) -pre_type(function) ident(compute)operator(()local_variable($value)operator(\)) +reserved(function) ident(compute)operator(()local_variable($value)operator(\)) operator({) operator(;) comment(// Return computed value utilising '$value') operator(}) @@ -2107,7 +2107,7 @@ operator(}) comment(// ------------) comment(// Original numerically-indexed array [sample data used]) -local_variable($unordered) operator(=) pre_type(array)operator(()integer(5)operator(,) integer(3)operator(,) integer(7)operator(,) integer(1)operator(,) integer(4)operator(,) integer(2)operator(,) integer(6)operator(\))operator(;) +local_variable($unordered) operator(=) predefined(array)operator(()integer(5)operator(,) integer(3)operator(,) integer(7)operator(,) integer(1)operator(,) integer(4)operator(,) integer(2)operator(,) integer(6)operator(\))operator(;) comment(// Create hash using 'compute' function to generate the keys. This example assumes that) comment(// each value in the '$unordered' array is used in generating the corresponding '$key') @@ -2117,30 +2117,30 @@ operator({) operator(}) comment(// Copy the hash, and sort it by key) -local_variable($ordered_precomputed) operator(=) ident(array_slice)operator(()local_variable($precomputed)operator(,) integer(0)operator(\))operator(;) ident(ksort)operator(()local_variable($ordered_precomputed)operator(\))operator(;) +local_variable($ordered_precomputed) operator(=) predefined(array_slice)operator(()local_variable($precomputed)operator(,) integer(0)operator(\))operator(;) predefined(ksort)operator(()local_variable($ordered_precomputed)operator(\))operator(;) comment(// Extract the values of the hash in current order placing them in a new numerically-indexed) comment(// array) -local_variable($ordered) operator(=) ident(array_values)operator(()local_variable($ordered_precomputed)operator(\))operator(;) +local_variable($ordered) operator(=) predefined(array_values)operator(()local_variable($ordered_precomputed)operator(\))operator(;) comment(// ----------------------------) comment(// As above, except uses 'array_update' and 'accum' to help create hash) -pre_type(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) +reserved(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) operator({) reserved(foreach)operator(()local_variable($arr) reserved(as) local_variable($key)operator(\)) local_variable($lambda)operator(()local_variable($updarr)operator(,) local_variable($key)operator(\))operator(;) - reserved(return) local_variable($updarr)operator(;) + predefined(return) local_variable($updarr)operator(;) operator(}) -pre_type(function) ident(accum)operator(()operator(&)local_variable($arr)operator(,) local_variable($value)operator(\)) +reserved(function) ident(accum)operator(()operator(&)local_variable($arr)operator(,) local_variable($value)operator(\)) operator({) local_variable($arr)operator([)ident(compute)operator(()local_variable($value)operator(\))operator(]) operator(=) local_variable($value)operator(;) operator(}) comment(// ------------) -pre_type(function) ident(compute)operator(()local_variable($value)operator(\)) +reserved(function) ident(compute)operator(()local_variable($value)operator(\)) operator({) operator(;) comment(// Return computed value utilising '$value') operator(}) @@ -2148,25 +2148,25 @@ operator(}) comment(// ------------) comment(// Original numerically-indexed array [sample data used]) -local_variable($unordered) operator(=) pre_type(array)operator(()integer(5)operator(,) integer(3)operator(,) integer(7)operator(,) integer(1)operator(,) integer(4)operator(,) integer(2)operator(,) integer(6)operator(\))operator(;) +local_variable($unordered) operator(=) predefined(array)operator(()integer(5)operator(,) integer(3)operator(,) integer(7)operator(,) integer(1)operator(,) integer(4)operator(,) integer(2)operator(,) integer(6)operator(\))operator(;) comment(// Create hash) -local_variable($precomputed) operator(=) ident(array_update)operator(()local_variable($unordered)operator(,) delimiter(')string(accum)delimiter(')operator(,) pre_type(array)operator(()operator(\))operator(\))operator(;) +local_variable($precomputed) operator(=) ident(array_update)operator(()local_variable($unordered)operator(,) string<delimiter(')content(accum)delimiter(')>operator(,) predefined(array)operator(()operator(\))operator(\))operator(;) comment(// Copy the hash, and sort it by key) -local_variable($ordered_precomputed) operator(=) ident(array_slice)operator(()local_variable($precomputed)operator(,) integer(0)operator(\))operator(;) ident(ksort)operator(()local_variable($ordered_precomputed)operator(\))operator(;) +local_variable($ordered_precomputed) operator(=) predefined(array_slice)operator(()local_variable($precomputed)operator(,) integer(0)operator(\))operator(;) predefined(ksort)operator(()local_variable($ordered_precomputed)operator(\))operator(;) comment(// Extract the values of the hash in current order placing them in a new numerically-indexed) comment(// array) -local_variable($ordered) operator(=) ident(array_values)operator(()local_variable($ordered_precomputed)operator(\))operator(;) +local_variable($ordered) operator(=) predefined(array_values)operator(()local_variable($ordered_precomputed)operator(\))operator(;) comment(// ----------------------------) -pre_type(class) constant(Employee) +reserved(class) constant(Employee) operator({) - pre_type(public) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(;) + reserved(public) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(;) - pre_type(public) pre_type(function) ident(__construct)operator(()local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(\)) + reserved(public) reserved(function) ident(__construct)operator(()local_variable($name)operator(,) local_variable($age)operator(,) local_variable($ssn)operator(,) local_variable($salary)operator(\)) operator({) local_variable($this)operator(->)ident(name) operator(=) local_variable($name)operator(;) local_variable($this)operator(->)ident(age) operator(=) local_variable($age)operator(;) @@ -2177,38 +2177,38 @@ operator(}) comment(// ------------) -local_variable($employees) operator(=) pre_type(array)operator(() - pre_type(new) constant(Employee)operator(()delimiter(')string(sdf)delimiter(')operator(,) integer(27)operator(,) integer(12345)operator(,) integer(47000)operator(\))operator(,) - pre_type(new) constant(Employee)operator(()delimiter(')string(ajb)delimiter(')operator(,) integer(32)operator(,) integer(12376)operator(,) integer(51000)operator(\))operator(,) - pre_type(new) constant(Employee)operator(()delimiter(')string(dgh)delimiter(')operator(,) integer(31)operator(,) integer(12355)operator(,) integer(45000)operator(\))operator(\))operator(;) +local_variable($employees) operator(=) predefined(array)operator(() + reserved(new) constant(Employee)operator(()string<delimiter(')content(sdf)delimiter(')>operator(,) integer(27)operator(,) integer(12345)operator(,) integer(47000)operator(\))operator(,) + reserved(new) constant(Employee)operator(()string<delimiter(')content(ajb)delimiter(')>operator(,) integer(32)operator(,) integer(12376)operator(,) integer(51000)operator(\))operator(,) + reserved(new) constant(Employee)operator(()string<delimiter(')content(dgh)delimiter(')>operator(,) integer(31)operator(,) integer(12355)operator(,) integer(45000)operator(\))operator(\))operator(;) comment(// ------------) -local_variable($ordered) operator(=) ident(array_slice)operator(()local_variable($employees)operator(,) integer(0)operator(\))operator(;) -ident(usort)operator(()local_variable($ordered)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return $left->name > $right->name;)delimiter(')operator(\))operator(\))operator(;) +local_variable($ordered) operator(=) predefined(array_slice)operator(()local_variable($employees)operator(,) integer(0)operator(\))operator(;) +predefined(usort)operator(()local_variable($ordered)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return $left->name > $right->name;)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -local_variable($sorted_employees) operator(=) ident(array_slice)operator(()local_variable($employees)operator(,) integer(0)operator(\))operator(;) -ident(usort)operator(()local_variable($sorted_employees)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return $left->name > $right->name;)delimiter(')operator(\))operator(\))operator(;) +local_variable($sorted_employees) operator(=) predefined(array_slice)operator(()local_variable($employees)operator(,) integer(0)operator(\))operator(;) +predefined(usort)operator(()local_variable($sorted_employees)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return $left->name > $right->name;)delimiter(')>operator(\))operator(\))operator(;) -local_variable($bonus) operator(=) pre_type(array)operator(()integer(12376) operator(=>) integer(5000)operator(,) integer(12345) operator(=>) integer(6000)operator(,) integer(12355) operator(=>) integer(0)operator(\))operator(;) +local_variable($bonus) operator(=) predefined(array)operator(()integer(12376) operator(=>) integer(5000)operator(,) integer(12345) operator(=>) integer(6000)operator(,) integer(12355) operator(=>) integer(0)operator(\))operator(;) reserved(foreach)operator(()local_variable($sorted_employees) reserved(as) local_variable($employee)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($employee)operator(->)ident(name)operator(})string( earns )string(\\)string($)operator({)local_variable($employee)operator(->)ident(salary)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($employee)operator(->)ident(name)operator(})content( earns )content(\\$)operator({)local_variable($employee)operator(->)ident(salary)operator(})char(\\n)delimiter(")>operator(;) operator(}) reserved(foreach)operator(()local_variable($sorted_employees) reserved(as) local_variable($employee)operator(\)) operator({) reserved(if) operator(()operator(()local_variable($amount) operator(=) local_variable($bonus)operator([)local_variable($employee)operator(->)ident(ssn)operator(])operator(\))operator(\)) - pre_type(echo) delimiter(")operator({)local_variable($employee)operator(->)ident(name)operator(})string( got a bonus of: )string(\\)string($)operator({)local_variable($amount)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($employee)operator(->)ident(name)operator(})content( got a bonus of: )content(\\$)operator({)local_variable($amount)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) -local_variable($sorted) operator(=) ident(array_slice)operator(()local_variable($employees)operator(,) integer(0)operator(\))operator(;) -ident(usort)operator(()local_variable($sorted)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return $left->name > $right->name || $left->age != $right->age;)delimiter(')operator(\))operator(\))operator(;) +local_variable($sorted) operator(=) predefined(array_slice)operator(()local_variable($employees)operator(,) integer(0)operator(\))operator(;) +predefined(usort)operator(()local_variable($sorted)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return $left->name > $right->name || $left->age != $right->age;)delimiter(')>operator(\))operator(\))operator(;) comment(// ----------------------------) @@ -2219,150 +2219,150 @@ comment(// manipulation, these functions won't be used. Instead a custom functio comment(// 'getpwent' function will be implemented so the code presented here can more faithfully match) comment(// the Perl code) -pre_type(function) ident(get_pw_entries)operator(()operator(\)) +reserved(function) ident(get_pw_entries)operator(()operator(\)) operator({) - pre_type(function) ident(normal_users_only)operator(()local_variable($e)operator(\)) + reserved(function) ident(normal_users_only)operator(()local_variable($e)operator(\)) operator({) - local_variable($entry) operator(=) ident(split)operator(()delimiter(')string(:)delimiter(')operator(,) local_variable($e)operator(\))operator(;) reserved(return) local_variable($entry)operator([)integer(2)operator(]) operator(>) integer(100) operator(&)operator(&) local_variable($entry)operator([)integer(2)operator(]) operator(<) integer(32768)operator(;) + local_variable($entry) operator(=) predefined(split)operator(()string<delimiter(')content(:)delimiter(')>operator(,) local_variable($e)operator(\))operator(;) predefined(return) local_variable($entry)operator([)integer(2)operator(]) operator(>) integer(100) operator(&)operator(&) local_variable($entry)operator([)integer(2)operator(]) operator(<) integer(32768)operator(;) operator(}) - reserved(foreach)operator(()ident(array_filter)operator(()ident(file)operator(()delimiter(')string(/etc/passwd)delimiter(')operator(\))operator(,) delimiter(')string(normal_users_only)delimiter(')operator(\)) reserved(as) local_variable($entry)operator(\)) - local_variable($users)operator([)operator(]) operator(=) ident(split)operator(()delimiter(')string(:)delimiter(')operator(,) ident(trim)operator(()local_variable($entry)operator(\))operator(\))operator(;) + reserved(foreach)operator(()predefined(array_filter)operator(()predefined(file)operator(()string<delimiter(')content(/etc/passwd)delimiter(')>operator(\))operator(,) string<delimiter(')content(normal_users_only)delimiter(')>operator(\)) reserved(as) local_variable($entry)operator(\)) + local_variable($users)operator([)operator(]) operator(=) predefined(split)operator(()string<delimiter(')content(:)delimiter(')>operator(,) predefined(trim)operator(()local_variable($entry)operator(\))operator(\))operator(;) - reserved(return) local_variable($users)operator(;) + predefined(return) local_variable($users)operator(;) operator(}) comment(// ------------) local_variable($users) operator(=) ident(get_pw_entries)operator(()operator(\))operator(;) -ident(usort)operator(()local_variable($users)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return $left[0] > $right[0];)delimiter(')operator(\))operator(\))operator(;) -reserved(foreach)operator(()local_variable($users) reserved(as) local_variable($user)operator(\)) pre_type(echo) delimiter(")operator({)local_variable($user)operator([)integer(0)operator(])operator(})char(\\n)delimiter(")operator(;) +predefined(usort)operator(()local_variable($users)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return $left[0] > $right[0];)delimiter(')>operator(\))operator(\))operator(;) +reserved(foreach)operator(()local_variable($users) reserved(as) local_variable($user)operator(\)) predefined(echo) string<delimiter(")operator({)local_variable($user)operator([)integer(0)operator(])operator(})char(\\n)delimiter(")>operator(;) comment(// ----------------------------) -local_variable($names) operator(=) pre_type(array)operator(()delimiter(')string(sdf)delimiter(')operator(,) delimiter(')string(ajb)delimiter(')operator(,) delimiter(')string(dgh)delimiter(')operator(\))operator(;) +local_variable($names) operator(=) predefined(array)operator(()string<delimiter(')content(sdf)delimiter(')>operator(,) string<delimiter(')content(ajb)delimiter(')>operator(,) string<delimiter(')content(dgh)delimiter(')>operator(\))operator(;) -local_variable($sorted) operator(=) ident(array_slice)operator(()local_variable($names)operator(,) integer(0)operator(\))operator(;) -ident(usort)operator(()local_variable($sorted)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return substr($left, 1, 1\) > substr($right, 1, 1\);)delimiter(')operator(\))operator(\))operator(;) +local_variable($sorted) operator(=) predefined(array_slice)operator(()local_variable($names)operator(,) integer(0)operator(\))operator(;) +predefined(usort)operator(()local_variable($sorted)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return substr($left, 1, 1\) > substr($right, 1, 1\);)delimiter(')>operator(\))operator(\))operator(;) comment(// ------------) -local_variable($strings) operator(=) pre_type(array)operator(()delimiter(')string(bbb)delimiter(')operator(,) delimiter(')string(aa)delimiter(')operator(,) delimiter(')string(c)delimiter(')operator(\))operator(;) +local_variable($strings) operator(=) predefined(array)operator(()string<delimiter(')content(bbb)delimiter(')>operator(,) string<delimiter(')content(aa)delimiter(')>operator(,) string<delimiter(')content(c)delimiter(')>operator(\))operator(;) -local_variable($sorted) operator(=) ident(array_slice)operator(()local_variable($strings)operator(,) integer(0)operator(\))operator(;) -ident(usort)operator(()local_variable($sorted)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return strlen($left\) > strlen($right\);)delimiter(')operator(\))operator(\))operator(;) +local_variable($sorted) operator(=) predefined(array_slice)operator(()local_variable($strings)operator(,) integer(0)operator(\))operator(;) +predefined(usort)operator(()local_variable($sorted)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return strlen($left\) > strlen($right\);)delimiter(')>operator(\))operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) +reserved(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) operator({) reserved(foreach)operator(()local_variable($arr) reserved(as) local_variable($key)operator(\)) local_variable($lambda)operator(()local_variable($updarr)operator(,) local_variable($key)operator(\))operator(;) - reserved(return) local_variable($updarr)operator(;) + predefined(return) local_variable($updarr)operator(;) operator(}) -pre_type(function) ident(accum)operator(()operator(&)local_variable($arr)operator(,) local_variable($value)operator(\)) +reserved(function) ident(accum)operator(()operator(&)local_variable($arr)operator(,) local_variable($value)operator(\)) operator({) - local_variable($arr)operator([)ident(strlen)operator(()local_variable($value)operator(\))operator(]) operator(=) local_variable($value)operator(;) + local_variable($arr)operator([)predefined(strlen)operator(()local_variable($value)operator(\))operator(]) operator(=) local_variable($value)operator(;) operator(}) comment(// ----) -local_variable($strings) operator(=) pre_type(array)operator(()delimiter(')string(bbb)delimiter(')operator(,) delimiter(')string(aa)delimiter(')operator(,) delimiter(')string(c)delimiter(')operator(\))operator(;) +local_variable($strings) operator(=) predefined(array)operator(()string<delimiter(')content(bbb)delimiter(')>operator(,) string<delimiter(')content(aa)delimiter(')>operator(,) string<delimiter(')content(c)delimiter(')>operator(\))operator(;) -local_variable($temp) operator(=) ident(array_update)operator(()local_variable($strings)operator(,) delimiter(')string(accum)delimiter(')operator(,) pre_type(array)operator(()operator(\))operator(\))operator(;) -ident(ksort)operator(()local_variable($temp)operator(\))operator(;) -local_variable($sorted) operator(=) ident(array_values)operator(()local_variable($temp)operator(\))operator(;) +local_variable($temp) operator(=) ident(array_update)operator(()local_variable($strings)operator(,) string<delimiter(')content(accum)delimiter(')>operator(,) predefined(array)operator(()operator(\))operator(\))operator(;) +predefined(ksort)operator(()local_variable($temp)operator(\))operator(;) +local_variable($sorted) operator(=) predefined(array_values)operator(()local_variable($temp)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) +reserved(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) operator({) reserved(foreach)operator(()local_variable($arr) reserved(as) local_variable($key)operator(\)) local_variable($lambda)operator(()local_variable($updarr)operator(,) local_variable($key)operator(\))operator(;) - reserved(return) local_variable($updarr)operator(;) + predefined(return) local_variable($updarr)operator(;) operator(}) -pre_type(function) ident(accum)operator(()operator(&)local_variable($arr)operator(,) local_variable($value)operator(\)) +reserved(function) ident(accum)operator(()operator(&)local_variable($arr)operator(,) local_variable($value)operator(\)) operator({) - reserved(if) operator(()ident(preg_match)operator(()delimiter(')string(/()string(\\)string(d+\)/)delimiter(')operator(,) local_variable($value)operator(,) local_variable($matches)operator(\))operator(\)) + reserved(if) operator(()predefined(preg_match)operator(()string<delimiter(')content(/()content(\\d)content(+\)/)delimiter(')>operator(,) local_variable($value)operator(,) local_variable($matches)operator(\))operator(\)) local_variable($arr)operator([)local_variable($matches)operator([)integer(1)operator(])operator(]) operator(=) local_variable($value)operator(;) operator(}) comment(// ----) -local_variable($fields) operator(=) pre_type(array)operator(()delimiter(')string(b1b2b)delimiter(')operator(,) delimiter(')string(a4a)delimiter(')operator(,) delimiter(')string(c9)delimiter(')operator(,) delimiter(')string(ddd)delimiter(')operator(,) delimiter(')string(a)delimiter(')operator(\))operator(;) +local_variable($fields) operator(=) predefined(array)operator(()string<delimiter(')content(b1b2b)delimiter(')>operator(,) string<delimiter(')content(a4a)delimiter(')>operator(,) string<delimiter(')content(c9)delimiter(')>operator(,) string<delimiter(')content(ddd)delimiter(')>operator(,) string<delimiter(')content(a)delimiter(')>operator(\))operator(;) -local_variable($temp) operator(=) ident(array_update)operator(()local_variable($fields)operator(,) delimiter(')string(accum)delimiter(')operator(,) pre_type(array)operator(()operator(\))operator(\))operator(;) -ident(ksort)operator(()local_variable($temp)operator(\))operator(;) -local_variable($sorted_fields) operator(=) ident(array_values)operator(()local_variable($temp)operator(\))operator(;) +local_variable($temp) operator(=) ident(array_update)operator(()local_variable($fields)operator(,) string<delimiter(')content(accum)delimiter(')>operator(,) predefined(array)operator(()operator(\))operator(\))operator(;) +predefined(ksort)operator(()local_variable($temp)operator(\))operator(;) +local_variable($sorted_fields) operator(=) predefined(array_values)operator(()local_variable($temp)operator(\))operator(;) comment(// @@PLEAC@@_4.16) -ident(array_unshift)operator(()local_variable($a1)operator(,) ident(array_pop)operator(()local_variable($a1)operator(\))operator(\))operator(;) comment(// last -> first) -ident(array_push)operator(()local_variable($a1)operator(,) ident(array_shift)operator(()local_variable($a1)operator(\))operator(\))operator(;) comment(// first -> last) +predefined(array_unshift)operator(()local_variable($a1)operator(,) predefined(array_pop)operator(()local_variable($a1)operator(\))operator(\))operator(;) comment(// last -> first) +predefined(array_push)operator(()local_variable($a1)operator(,) predefined(array_shift)operator(()local_variable($a1)operator(\))operator(\))operator(;) comment(// first -> last) comment(// ----------------------------) -pre_type(function) ident(grab_and_rotate)operator(()operator(&)local_variable($arr)operator(\)) +reserved(function) ident(grab_and_rotate)operator(()operator(&)local_variable($arr)operator(\)) operator({) local_variable($item) operator(=) local_variable($arr)operator([)integer(0)operator(])operator(;) - ident(array_push)operator(()local_variable($arr)operator(,) ident(array_shift)operator(()local_variable($arr)operator(\))operator(\))operator(;) - reserved(return) local_variable($item)operator(;) + predefined(array_push)operator(()local_variable($arr)operator(,) predefined(array_shift)operator(()local_variable($arr)operator(\))operator(\))operator(;) + predefined(return) local_variable($item)operator(;) operator(}) comment(// ------------) -local_variable($processes) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(\))operator(;) +local_variable($processes) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(\))operator(;) -reserved(while) operator(()constant(TRUE)operator(\)) +reserved(while) operator(()reserved(TRUE)operator(\)) operator({) local_variable($process) operator(=) ident(grab_and_rotate)operator(()local_variable($processes)operator(\))operator(;) - pre_type(echo) delimiter(")string(Handling process )operator({)local_variable($process)operator(})char(\\n)delimiter(")operator(;) - ident(sleep)operator(()integer(1)operator(\))operator(;) + predefined(echo) string<delimiter(")content(Handling process )operator({)local_variable($process)operator(})char(\\n)delimiter(")>operator(;) + predefined(sleep)operator(()integer(1)operator(\))operator(;) operator(}) comment(// @@PLEAC@@_4.17) comment(// PHP offers the 'shuffle' function to perform this task) -local_variable($arr) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(,) integer(9)operator(\))operator(;) +local_variable($arr) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(,) integer(9)operator(\))operator(;) -ident(shuffle)operator(()local_variable($arr)operator(\))operator(;) +predefined(shuffle)operator(()local_variable($arr)operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($arr)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($arr)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ----------------------------) comment(// Perl example equivalents) -pre_type(function) ident(fisher_yates_shuffle)operator(()operator(&)local_variable($a)operator(\)) +reserved(function) ident(fisher_yates_shuffle)operator(()operator(&)local_variable($a)operator(\)) operator({) - local_variable($size) operator(=) ident(count)operator(()local_variable($a)operator(\)) operator(-) integer(1)operator(;) + local_variable($size) operator(=) predefined(count)operator(()local_variable($a)operator(\)) operator(-) integer(1)operator(;) reserved(for)operator(()local_variable($i) operator(=) local_variable($size)operator(;) local_variable($i) operator(>=) integer(0)operator(;) local_variable($i)operator(--)operator(\)) operator({) - reserved(if) operator(()operator(()local_variable($j) operator(=) ident(rand)operator(()integer(0)operator(,) local_variable($i)operator(\))operator(\)) operator(!=) local_variable($i)operator(\)) - pre_type(list)operator(()local_variable($a)operator([)local_variable($i)operator(])operator(,) local_variable($a)operator([)local_variable($j)operator(])operator(\)) operator(=) pre_type(array)operator(()local_variable($a)operator([)local_variable($j)operator(])operator(,) local_variable($a)operator([)local_variable($i)operator(])operator(\))operator(;) + reserved(if) operator(()operator(()local_variable($j) operator(=) predefined(rand)operator(()integer(0)operator(,) local_variable($i)operator(\))operator(\)) operator(!=) local_variable($i)operator(\)) + predefined(list)operator(()local_variable($a)operator([)local_variable($i)operator(])operator(,) local_variable($a)operator([)local_variable($j)operator(])operator(\)) operator(=) predefined(array)operator(()local_variable($a)operator([)local_variable($j)operator(])operator(,) local_variable($a)operator([)local_variable($i)operator(])operator(\))operator(;) operator(}) operator(}) -pre_type(function) ident(naive_shuffle)operator(()operator(&)local_variable($a)operator(\)) +reserved(function) ident(naive_shuffle)operator(()operator(&)local_variable($a)operator(\)) operator({) - local_variable($size) operator(=) ident(count)operator(()local_variable($a)operator(\))operator(;) + local_variable($size) operator(=) predefined(count)operator(()local_variable($a)operator(\))operator(;) reserved(for)operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) local_variable($size)operator(;) local_variable($i)operator(++)operator(\)) operator({) - local_variable($j) operator(=) ident(rand)operator(()integer(0)operator(,) local_variable($size) operator(-) integer(1)operator(\))operator(;) - pre_type(list)operator(()local_variable($a)operator([)local_variable($i)operator(])operator(,) local_variable($a)operator([)local_variable($j)operator(])operator(\)) operator(=) pre_type(array)operator(()local_variable($a)operator([)local_variable($j)operator(])operator(,) local_variable($a)operator([)local_variable($i)operator(])operator(\))operator(;) + local_variable($j) operator(=) predefined(rand)operator(()integer(0)operator(,) local_variable($size) operator(-) integer(1)operator(\))operator(;) + predefined(list)operator(()local_variable($a)operator([)local_variable($i)operator(])operator(,) local_variable($a)operator([)local_variable($j)operator(])operator(\)) operator(=) predefined(array)operator(()local_variable($a)operator([)local_variable($j)operator(])operator(,) local_variable($a)operator([)local_variable($i)operator(])operator(\))operator(;) operator(}) operator(}) comment(// ------------) -local_variable($arr) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(,) integer(9)operator(\))operator(;) +local_variable($arr) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(,) integer(4)operator(,) integer(5)operator(,) integer(6)operator(,) integer(7)operator(,) integer(8)operator(,) integer(9)operator(\))operator(;) ident(fisher_yates_shuffle)operator(()local_variable($arr)operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($arr)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($arr)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) ident(naive_shuffle)operator(()local_variable($arr)operator(\))operator(;) -pre_type(echo) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($arr)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($arr)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_4.18) comment(// @@INCOMPLETE@@) @@ -2378,41 +2378,41 @@ comment(// as 'hashes' - and for the sake of avoiding confusion, the Perl termin comment(// be used. As a matter of interest, PHP does not sport a vector, matrix, or list) comment(// type: the 'array' [Perl 'hash'] serves all these roles) -local_variable($age) operator(=) pre_type(array)operator(()delimiter(')string(Nat)delimiter(') operator(=>) integer(24)operator(,) delimiter(')string(Jules)delimiter(') operator(=>) integer(25)operator(,) delimiter(')string(Josh)delimiter(') operator(=>) integer(17)operator(\))operator(;) +local_variable($age) operator(=) predefined(array)operator(()string<delimiter(')content(Nat)delimiter(')> operator(=>) integer(24)operator(,) string<delimiter(')content(Jules)delimiter(')> operator(=>) integer(25)operator(,) string<delimiter(')content(Josh)delimiter(')> operator(=>) integer(17)operator(\))operator(;) -local_variable($age)operator([)delimiter(')string(Nat)delimiter(')operator(]) operator(=) integer(24)operator(;) -local_variable($age)operator([)delimiter(')string(Jules)delimiter(')operator(]) operator(=) integer(25)operator(;) -local_variable($age)operator([)delimiter(')string(Josh)delimiter(')operator(]) operator(=) integer(17)operator(;) +local_variable($age)operator([)string<delimiter(')content(Nat)delimiter(')>operator(]) operator(=) integer(24)operator(;) +local_variable($age)operator([)string<delimiter(')content(Jules)delimiter(')>operator(]) operator(=) integer(25)operator(;) +local_variable($age)operator([)string<delimiter(')content(Josh)delimiter(')>operator(]) operator(=) integer(17)operator(;) -local_variable($age) operator(=) ident(array_combine)operator(()pre_type(array)operator(()delimiter(')string(Nat)delimiter(')operator(,) delimiter(')string(Jules)delimiter(')operator(,) delimiter(')string(Josh)delimiter(')operator(\))operator(,) pre_type(array)operator(()integer(24)operator(,) integer(25)operator(,) integer(17)operator(\))operator(\))operator(;) +local_variable($age) operator(=) predefined(array_combine)operator(()predefined(array)operator(()string<delimiter(')content(Nat)delimiter(')>operator(,) string<delimiter(')content(Jules)delimiter(')>operator(,) string<delimiter(')content(Josh)delimiter(')>operator(\))operator(,) predefined(array)operator(()integer(24)operator(,) integer(25)operator(,) integer(17)operator(\))operator(\))operator(;) comment(// ------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -local_variable($food_colour)operator([)delimiter(')string(Apple)delimiter(')operator(]) operator(=) delimiter(')string(red)delimiter(')operator(;) local_variable($food_colour)operator([)delimiter(')string(Banana)delimiter(')operator(]) operator(=) delimiter(')string(yellow)delimiter(')operator(;) -local_variable($food_colour)operator([)delimiter(')string(Lemon)delimiter(')operator(]) operator(=) delimiter(')string(yellow)delimiter(')operator(;) local_variable($food_colour)operator([)delimiter(')string(Carrot)delimiter(')operator(]) operator(=) delimiter(')string(orange)delimiter(')operator(;) +local_variable($food_colour)operator([)string<delimiter(')content(Apple)delimiter(')>operator(]) operator(=) string<delimiter(')content(red)delimiter(')>operator(;) local_variable($food_colour)operator([)string<delimiter(')content(Banana)delimiter(')>operator(]) operator(=) string<delimiter(')content(yellow)delimiter(')>operator(;) +local_variable($food_colour)operator([)string<delimiter(')content(Lemon)delimiter(')>operator(]) operator(=) string<delimiter(')content(yellow)delimiter(')>operator(;) local_variable($food_colour)operator([)string<delimiter(')content(Carrot)delimiter(')>operator(]) operator(=) string<delimiter(')content(orange)delimiter(')>operator(;) -local_variable($food_colour) operator(=) ident(array_combine)operator(()pre_type(array)operator(()delimiter(')string(Apple)delimiter(')operator(,) delimiter(')string(Banana)delimiter(')operator(,) delimiter(')string(Lemon)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(')operator(\))operator(,) - pre_type(array)operator(()delimiter(')string(red)delimiter(')operator(,) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(orange)delimiter(')operator(\))operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array_combine)operator(()predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')>operator(,) string<delimiter(')content(Lemon)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')>operator(\))operator(,) + predefined(array)operator(()string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(orange)delimiter(')>operator(\))operator(\))operator(;) comment(// @@PLEAC@@_5.1) local_variable($hash)operator([)local_variable($key)operator(]) operator(=) local_variable($value)operator(;) comment(// ------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -local_variable($food_colour)operator([)delimiter(')string(Raspberry)delimiter(')operator(]) operator(=) delimiter(')string(pink)delimiter(')operator(;) +local_variable($food_colour)operator([)string<delimiter(')content(Raspberry)delimiter(')>operator(]) operator(=) string<delimiter(')content(pink)delimiter(')>operator(;) -pre_type(echo) delimiter(")string(Known foods:)char(\\n)delimiter(")operator(;) -reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) pre_type(echo) delimiter(")operator({)local_variable($food)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(Known foods:)char(\\n)delimiter(")>operator(;) +reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) predefined(echo) string<delimiter(")operator({)local_variable($food)operator(})char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_5.2) comment(// Returns TRUE on all existing entries with non-NULL values) -reserved(if) operator(()pre_type(isset)operator(()local_variable($hash)operator([)local_variable($key)operator(])operator(\))operator(\)) +reserved(if) operator(()predefined(isset)operator(()local_variable($hash)operator([)local_variable($key)operator(])operator(\))operator(\)) operator(;) comment(// entry exists ) reserved(else) operator(;) comment(// no such entry ) @@ -2420,89 +2420,89 @@ reserved(else) comment(// ------------) comment(// Returns TRUE on all existing entries regardless of attached value) -reserved(if) operator(()ident(array_key_exists)operator(()local_variable($key)operator(,) local_variable($hash)operator(\))operator(\)) +reserved(if) operator(()predefined(array_key_exists)operator(()local_variable($key)operator(,) local_variable($hash)operator(\))operator(\)) operator(;) comment(// entry exists ) reserved(else) operator(;) comment(// no such entry ) comment(// ----------------------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -reserved(foreach)operator(()pre_type(array)operator(()delimiter(')string(Banana)delimiter(')operator(,) delimiter(')string(Martini)delimiter(')operator(\)) reserved(as) local_variable($name)operator(\)) +reserved(foreach)operator(()predefined(array)operator(()string<delimiter(')content(Banana)delimiter(')>operator(,) string<delimiter(')content(Martini)delimiter(')>operator(\)) reserved(as) local_variable($name)operator(\)) operator({) - reserved(if) operator(()pre_type(isset)operator(()local_variable($food_colour)operator([)local_variable($name)operator(])operator(\))operator(\)) - pre_type(echo) delimiter(")operator({)local_variable($name)operator(})string( is a food.)char(\\n)delimiter(")operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($food_colour)operator([)local_variable($name)operator(])operator(\))operator(\)) + predefined(echo) string<delimiter(")operator({)local_variable($name)operator(})content( is a food.)char(\\n)delimiter(")>operator(;) reserved(else) - pre_type(echo) delimiter(")operator({)local_variable($name)operator(})string( is a drink.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($name)operator(})content( is a drink.)char(\\n)delimiter(")>operator(;) operator(}) comment(// ----------------------------) -local_variable($age) operator(=) pre_type(array)operator(()delimiter(')string(Toddler)delimiter(') operator(=>) integer(3)operator(,) delimiter(')string(Unborn)delimiter(') operator(=>) integer(0)operator(,) delimiter(')string(Phantasm)delimiter(') operator(=>) constant(NULL)operator(\))operator(;) +local_variable($age) operator(=) predefined(array)operator(()string<delimiter(')content(Toddler)delimiter(')> operator(=>) integer(3)operator(,) string<delimiter(')content(Unborn)delimiter(')> operator(=>) integer(0)operator(,) string<delimiter(')content(Phantasm)delimiter(')> operator(=>) reserved(NULL)operator(\))operator(;) -reserved(foreach)operator(()pre_type(array)operator(()delimiter(')string(Toddler)delimiter(')operator(,) delimiter(')string(Unborn)delimiter(')operator(,) delimiter(')string(Phantasm)delimiter(')operator(,) delimiter(')string(Relic)delimiter(')operator(\)) reserved(as) local_variable($thing)operator(\)) +reserved(foreach)operator(()predefined(array)operator(()string<delimiter(')content(Toddler)delimiter(')>operator(,) string<delimiter(')content(Unborn)delimiter(')>operator(,) string<delimiter(')content(Phantasm)delimiter(')>operator(,) string<delimiter(')content(Relic)delimiter(')>operator(\)) reserved(as) local_variable($thing)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($thing)operator(})string(:)delimiter(")operator(;) - reserved(if) operator(()ident(array_key_exists)operator(()local_variable($thing)operator(,) local_variable($age)operator(\))operator(\)) pre_type(echo) delimiter(')string( exists)delimiter(')operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($age)operator([)local_variable($thing)operator(])operator(\))operator(\)) pre_type(echo) delimiter(')string( non-NULL)delimiter(')operator(;) - reserved(if) operator(()local_variable($age)operator([)local_variable($thing)operator(])operator(\)) pre_type(echo) delimiter(')string( TRUE)delimiter(')operator(;) - pre_type(echo) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($thing)operator(})content(:)delimiter(")>operator(;) + reserved(if) operator(()predefined(array_key_exists)operator(()local_variable($thing)operator(,) local_variable($age)operator(\))operator(\)) predefined(echo) string<delimiter(')content( exists)delimiter(')>operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($age)operator([)local_variable($thing)operator(])operator(\))operator(\)) predefined(echo) string<delimiter(')content( non-NULL)delimiter(')>operator(;) + reserved(if) operator(()local_variable($age)operator([)local_variable($thing)operator(])operator(\)) predefined(echo) string<delimiter(')content( TRUE)delimiter(')>operator(;) + predefined(echo) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_5.3) comment(// Remove one, or more, hash entries) -pre_type(unset)operator(()local_variable($hash)operator([)local_variable($key)operator(])operator(\))operator(;) +predefined(unset)operator(()local_variable($hash)operator([)local_variable($key)operator(])operator(\))operator(;) -pre_type(unset)operator(()local_variable($hash)operator([)local_variable($key1)operator(])operator(,) local_variable($hash)operator([)local_variable($key2)operator(])operator(,) local_variable($hash)operator([)local_variable($key3)operator(])operator(\))operator(;) +predefined(unset)operator(()local_variable($hash)operator([)local_variable($key1)operator(])operator(,) local_variable($hash)operator([)local_variable($key2)operator(])operator(,) local_variable($hash)operator([)local_variable($key3)operator(])operator(\))operator(;) comment(// Remove entire hash) -pre_type(unset)operator(()local_variable($hash)operator(\))operator(;) +predefined(unset)operator(()local_variable($hash)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(print_foods)operator(()operator(\)) +reserved(function) ident(print_foods)operator(()operator(\)) operator({) comment(// Perl example uses a global variable) - pre_type(global) local_variable($food_colour)operator(;) + reserved(global) local_variable($food_colour)operator(;) - local_variable($foods) operator(=) ident(array_keys)operator(()local_variable($food_colour)operator(\))operator(;) + local_variable($foods) operator(=) predefined(array_keys)operator(()local_variable($food_colour)operator(\))operator(;) - pre_type(echo) delimiter(')string(Foods:)delimiter(')operator(;) - reserved(foreach)operator(()local_variable($foods) reserved(as) local_variable($food)operator(\)) pre_type(echo) delimiter(")string( )operator({)local_variable($food)operator(})delimiter(")operator(;) + predefined(echo) string<delimiter(')content(Foods:)delimiter(')>operator(;) + reserved(foreach)operator(()local_variable($foods) reserved(as) local_variable($food)operator(\)) predefined(echo) string<delimiter(")content( )operator({)local_variable($food)operator(})delimiter(")>operator(;) - pre_type(echo) delimiter(")char(\\n)string(Values:)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")char(\\n)content(Values:)char(\\n)delimiter(")>operator(;) reserved(foreach)operator(()local_variable($foods) reserved(as) local_variable($food)operator(\)) operator({) local_variable($colour) operator(=) local_variable($food_colour)operator([)local_variable($food)operator(])operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($colour)operator(\))operator(\)) - pre_type(echo) delimiter(")string( )operator({)local_variable($colour)operator(})char(\\n)delimiter(")operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($colour)operator(\))operator(\)) + predefined(echo) string<delimiter(")content( )operator({)local_variable($colour)operator(})char(\\n)delimiter(")>operator(;) reserved(else) - pre_type(echo) delimiter(")string( nullified or removed)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content( nullified or removed)char(\\n)delimiter(")>operator(;) operator(}) operator(}) comment(// ------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -pre_type(echo) delimiter(")string(Initially:)char(\\n)delimiter(")operator(;) ident(print_foods)operator(()operator(\))operator(;) +predefined(echo) string<delimiter(")content(Initially:)char(\\n)delimiter(")>operator(;) ident(print_foods)operator(()operator(\))operator(;) comment(// Nullify an entry) -local_variable($food_colour)operator([)delimiter(')string(Banana)delimiter(')operator(]) operator(=) constant(NULL)operator(;) -pre_type(echo) delimiter(")char(\\n)string(With 'Banana' nullified)char(\\n)delimiter(")operator(;) +local_variable($food_colour)operator([)string<delimiter(')content(Banana)delimiter(')>operator(]) operator(=) reserved(NULL)operator(;) +predefined(echo) string<delimiter(")char(\\n)content(With 'Banana' nullified)char(\\n)delimiter(")>operator(;) ident(print_foods)operator(()operator(\))operator(;) comment(// Remove an entry) -pre_type(unset)operator(()local_variable($food_colour)operator([)delimiter(')string(Banana)delimiter(')operator(])operator(\))operator(;) -pre_type(echo) delimiter(")char(\\n)string(With 'Banana' removed)char(\\n)delimiter(")operator(;) +predefined(unset)operator(()local_variable($food_colour)operator([)string<delimiter(')content(Banana)delimiter(')>operator(])operator(\))operator(;) +predefined(echo) string<delimiter(")char(\\n)content(With 'Banana' removed)char(\\n)delimiter(")>operator(;) ident(print_foods)operator(()operator(\))operator(;) comment(// Destroy the hash) -pre_type(unset)operator(()local_variable($food_colour)operator(\))operator(;) +predefined(unset)operator(()local_variable($food_colour)operator(\))operator(;) comment(// @@PLEAC@@_5.4) comment(// Access keys and values) @@ -2512,7 +2512,7 @@ operator({) operator(}) comment(// Access keys only) -reserved(foreach)operator(()ident(array_keys)operator(()local_variable($hash)operator(\)) reserved(as) local_variable($key)operator(\)) +reserved(foreach)operator(()predefined(array_keys)operator(()local_variable($hash)operator(\)) reserved(as) local_variable($key)operator(\)) operator({) operator(;) comment(// ...) operator(}) @@ -2525,46 +2525,46 @@ operator(}) comment(// ----------------------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($food)operator(})string( is )operator({)local_variable($colour)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($food)operator(})content( is )operator({)local_variable($colour)operator(})char(\\n)delimiter(")>operator(;) operator(}) -reserved(foreach)operator(()ident(array_keys)operator(()local_variable($food_colour)operator(\)) reserved(as) local_variable($food)operator(\)) +reserved(foreach)operator(()predefined(array_keys)operator(()local_variable($food_colour)operator(\)) reserved(as) local_variable($food)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($food)operator(})string( is )operator({)local_variable($food_colour)operator([)local_variable($food)operator(])operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($food)operator(})content( is )operator({)local_variable($food_colour)operator([)local_variable($food)operator(])operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// ----------------------------) comment(// 'countfrom' - count number of messages from each sender) -local_variable($line) operator(=) ident(fgets)operator(()constant(STDIN)operator(\))operator(;) +local_variable($line) operator(=) predefined(fgets)operator(()constant(STDIN)operator(\))operator(;) -reserved(while) operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) +reserved(while) operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) - reserved(if) operator(()ident(preg_match)operator(()delimiter(')string(/^From: (.*\)/)delimiter(')operator(,) local_variable($line)operator(,) local_variable($matches)operator(\))operator(\)) + reserved(if) operator(()predefined(preg_match)operator(()string<delimiter(')content(/^From: (.*\)/)delimiter(')>operator(,) local_variable($line)operator(,) local_variable($matches)operator(\))operator(\)) operator({) - reserved(if) operator(()pre_type(isset)operator(()local_variable($from)operator([)local_variable($matches)operator([)integer(1)operator(])operator(])operator(\))operator(\)) + reserved(if) operator(()predefined(isset)operator(()local_variable($from)operator([)local_variable($matches)operator([)integer(1)operator(])operator(])operator(\))operator(\)) local_variable($from)operator([)local_variable($matches)operator([)integer(1)operator(])operator(]) operator(+)operator(=) integer(1)operator(;) reserved(else) local_variable($from)operator([)local_variable($matches)operator([)integer(1)operator(])operator(]) operator(=) integer(1)operator(;) operator(}) - local_variable($line) operator(=) ident(fgets)operator(()constant(STDIN)operator(\))operator(;) + local_variable($line) operator(=) predefined(fgets)operator(()constant(STDIN)operator(\))operator(;) operator(}) -reserved(if) operator(()pre_type(isset)operator(()local_variable($from)operator(\))operator(\)) +reserved(if) operator(()predefined(isset)operator(()local_variable($from)operator(\))operator(\)) operator({) - pre_type(echo) delimiter(")string(Senders:)char(\\n)delimiter(")operator(;) - reserved(foreach)operator(()local_variable($from) reserved(as) local_variable($sender) operator(=>) local_variable($count)operator(\)) pre_type(echo) delimiter(")operator({)local_variable($sender)operator(})string( : )operator({)local_variable($count)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(Senders:)char(\\n)delimiter(")>operator(;) + reserved(foreach)operator(()local_variable($from) reserved(as) local_variable($sender) operator(=>) local_variable($count)operator(\)) predefined(echo) string<delimiter(")operator({)local_variable($sender)operator(})content( : )operator({)local_variable($count)operator(})char(\\n)delimiter(")>operator(;) operator(}) reserved(else) operator({) - pre_type(echo) delimiter(")string(No valid data entered)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(No valid data entered)char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_5.5) @@ -2577,14 +2577,14 @@ comment(// [key2] => value2) comment(// ...) comment(// \)) -ident(print_r)operator(()local_variable($hash)operator(\))operator(;) +predefined(print_r)operator(()local_variable($hash)operator(\))operator(;) comment(// ------------) comment(// Based on Perl example; non-recursive, so contained arrays not printed correctly) reserved(foreach)operator(()local_variable($hash) reserved(as) local_variable($key) operator(=>) local_variable($value)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($key)operator(})string( => )local_variable($value)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($key)operator(})content( => )local_variable($value)char(\\n)delimiter(")>operator(;) operator(}) comment(// ----------------------------) @@ -2592,28 +2592,28 @@ comment(// ----------------------------) comment(// Sorted by keys) comment(// 1. Sort the original hash) -ident(ksort)operator(()local_variable($hash)operator(\))operator(;) +predefined(ksort)operator(()local_variable($hash)operator(\))operator(;) comment(// 2. Extract keys, sort, traverse original in key order) -local_variable($keys) operator(=) ident(array_keys)operator(()local_variable($hash)operator(\))operator(;) ident(sort)operator(()local_variable($keys)operator(\))operator(;) +local_variable($keys) operator(=) predefined(array_keys)operator(()local_variable($hash)operator(\))operator(;) predefined(sort)operator(()local_variable($keys)operator(\))operator(;) reserved(foreach)operator(()local_variable($keys) reserved(as) local_variable($key)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($key)operator(})string( => )operator({)local_variable($hash)operator([)local_variable($key)operator(])operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($key)operator(})content( => )operator({)local_variable($hash)operator([)local_variable($key)operator(])operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// Sorted by values) comment(// 1. Sort the original hash) -ident(asort)operator(()local_variable($hash)operator(\))operator(;) +predefined(asort)operator(()local_variable($hash)operator(\))operator(;) comment(// 2. Extract values, sort, traverse original in value order [warning: finds ) comment(// only first matching key in the case where duplicate values exist]) -local_variable($values) operator(=) ident(array_values)operator(()local_variable($hash)operator(\))operator(;) ident(sort)operator(()local_variable($values)operator(\))operator(;) +local_variable($values) operator(=) predefined(array_values)operator(()local_variable($hash)operator(\))operator(;) predefined(sort)operator(()local_variable($values)operator(\))operator(;) reserved(foreach)operator(()local_variable($values) reserved(as) local_variable($value)operator(\)) operator({) - pre_type(echo) local_variable($value) operator(.) delimiter(')string( <= )delimiter(') operator(.) ident(array_search)operator(()local_variable($value)operator(,) local_variable($hash)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) local_variable($value) operator(.) string<delimiter(')content( <= )delimiter(')> operator(.) predefined(array_search)operator(()local_variable($value)operator(,) local_variable($hash)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_5.6) @@ -2621,45 +2621,45 @@ comment(// Unless sorted, hash elements remain in the order of insertion. If car comment(// always add a new element to the end of the hash, then element order is the order) comment(// of insertion. The following function, 'array_push_associative' [modified from original) comment(// found at 'array_push' section of PHP documentation], does just that) -pre_type(function) ident(array_push_associative)operator(()operator(&)local_variable($arr)operator(\)) +reserved(function) ident(array_push_associative)operator(()operator(&)local_variable($arr)operator(\)) operator({) - reserved(foreach) operator(()ident(func_get_args)operator(()operator(\)) reserved(as) local_variable($arg)operator(\)) + reserved(foreach) operator(()predefined(func_get_args)operator(()operator(\)) reserved(as) local_variable($arg)operator(\)) operator({) - reserved(if) operator(()ident(is_array)operator(()local_variable($arg)operator(\))operator(\)) + reserved(if) operator(()predefined(is_array)operator(()local_variable($arg)operator(\))operator(\)) reserved(foreach) operator(()local_variable($arg) reserved(as) local_variable($key) operator(=>) local_variable($value)operator(\)) operator({) local_variable($arr)operator([)local_variable($key)operator(]) operator(=) local_variable($value)operator(;) local_variable($ret)operator(++)operator(;) operator(}) reserved(else) - local_variable($arr)operator([)local_variable($arg)operator(]) operator(=) delimiter(')delimiter(')operator(;) + local_variable($arr)operator([)local_variable($arg)operator(]) operator(=) string<delimiter(')delimiter(')>operator(;) operator(}) - reserved(return) local_variable($ret)operator(;) + predefined(return) local_variable($ret)operator(;) operator(}) comment(// ------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()operator(\))operator(;) comment(// Individual calls, or ...) -ident(array_push_associative)operator(()local_variable($food_colour)operator(,) pre_type(array)operator(()delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(Yellow)delimiter(')operator(\))operator(\))operator(;) -ident(array_push_associative)operator(()local_variable($food_colour)operator(,) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(Green)delimiter(')operator(\))operator(\))operator(;) -ident(array_push_associative)operator(()local_variable($food_colour)operator(,) pre_type(array)operator(()delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(Yellow)delimiter(')operator(\))operator(\))operator(;) +ident(array_push_associative)operator(()local_variable($food_colour)operator(,) predefined(array)operator(()string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(Yellow)delimiter(')>operator(\))operator(\))operator(;) +ident(array_push_associative)operator(()local_variable($food_colour)operator(,) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(Green)delimiter(')>operator(\))operator(\))operator(;) +ident(array_push_associative)operator(()local_variable($food_colour)operator(,) predefined(array)operator(()string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(Yellow)delimiter(')>operator(\))operator(\))operator(;) comment(// ... one call, one array; physical order retained) comment(// array_push_associative($food_colour, array('Banana' => 'Yellow', 'Apple' => 'Green', 'Lemon' => 'Yellow'\)\);) -ident(print_r)operator(()local_variable($food_colour)operator(\))operator(;) +predefined(print_r)operator(()local_variable($food_colour)operator(\))operator(;) -pre_type(echo) delimiter(")char(\\n)string(In insertion order:)char(\\n)delimiter(")operator(;) -reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) pre_type(echo) delimiter(")string( )operator({)local_variable($food)operator(})string( => )operator({)local_variable($colour)operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")char(\\n)content(In insertion order:)char(\\n)delimiter(")>operator(;) +reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) predefined(echo) string<delimiter(")content( )operator({)local_variable($food)operator(})content( => )operator({)local_variable($colour)operator(})char(\\n)delimiter(")>operator(;) -local_variable($foods) operator(=) ident(array_keys)operator(()local_variable($food_colour)operator(\))operator(;) +local_variable($foods) operator(=) predefined(array_keys)operator(()local_variable($food_colour)operator(\))operator(;) -pre_type(echo) delimiter(")char(\\n)string(Still in insertion order:)char(\\n)delimiter(")operator(;) -reserved(foreach)operator(()local_variable($foods) reserved(as) local_variable($food)operator(\)) pre_type(echo) delimiter(")string( )operator({)local_variable($food)operator(})string( => )operator({)local_variable($food_colour)operator([)local_variable($food)operator(])operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")char(\\n)content(Still in insertion order:)char(\\n)delimiter(")>operator(;) +reserved(foreach)operator(()local_variable($foods) reserved(as) local_variable($food)operator(\)) predefined(echo) string<delimiter(")content( )operator({)local_variable($food)operator(})content( => )operator({)local_variable($food_colour)operator([)local_variable($food)operator(])operator(})char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_5.7) -reserved(foreach)operator(()ident(array_slice)operator(()ident(preg_split)operator(()delimiter(')string(/)string(\\)string(n/)delimiter(')operator(,) error(`)ident(who)error(`)operator(\))operator(,) integer(0)operator(,) integer(-1)operator(\)) reserved(as) local_variable($entry)operator(\)) +reserved(foreach)operator(()predefined(array_slice)operator(()predefined(preg_split)operator(()string<delimiter(')content(/)content(\\n)content(/)delimiter(')>operator(,) error(`)ident(who)error(`)operator(\))operator(,) integer(0)operator(,) operator(-)integer(1)operator(\)) reserved(as) local_variable($entry)operator(\)) operator({) - pre_type(list)operator(()local_variable($user)operator(,) local_variable($tty)operator(\)) operator(=) ident(preg_split)operator(()delimiter(')string(/)string(\\)string(s/)delimiter(')operator(,) local_variable($entry)operator(\))operator(;) + predefined(list)operator(()local_variable($user)operator(,) local_variable($tty)operator(\)) operator(=) predefined(preg_split)operator(()string<delimiter(')content(/)content(\\s)content(/)delimiter(')>operator(,) local_variable($entry)operator(\))operator(;) local_variable($ttys)operator([)local_variable($user)operator(])operator([)operator(]) operator(=) local_variable($tty)operator(;) comment(// Could instead do this:) @@ -2667,27 +2667,27 @@ operator({) comment(// $ttys[$user[0]][] = $user[1];) operator(}) -ident(ksort)operator(()local_variable($ttys)operator(\))operator(;) +predefined(ksort)operator(()local_variable($ttys)operator(\))operator(;) comment(// ------------) reserved(foreach)operator(()local_variable($ttys) reserved(as) local_variable($user) operator(=>) local_variable($all_ttys)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($user)operator(})string(: )delimiter(") operator(.) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($all_ttys)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($user)operator(})content(: )delimiter(")> operator(.) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($all_ttys)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) reserved(foreach)operator(()local_variable($ttys) reserved(as) local_variable($user) operator(=>) local_variable($all_ttys)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($user)operator(})string(: )delimiter(") operator(.) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($all_ttys)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($user)operator(})content(: )delimiter(")> operator(.) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($all_ttys)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) reserved(foreach)operator(()local_variable($all_ttys) reserved(as) local_variable($tty)operator(\)) operator({) - local_variable($stat) operator(=) ident(stat)operator(()delimiter(')string(/dev/$tty)delimiter(')operator(\))operator(;) - local_variable($pwent) operator(=) ident(posix_getpwuid)operator(()local_variable($stat)operator([)delimiter(')string(uid)delimiter(')operator(])operator(\))operator(;) - local_variable($user) operator(=) pre_type(isset)operator(()local_variable($pwent)operator([)delimiter(')string(name)delimiter(')operator(])operator(\)) operator(?) local_variable($pwent)operator([)delimiter(')string(name)delimiter(')operator(]) operator(:) delimiter(')string(Not available)delimiter(')operator(;) - pre_type(echo) delimiter(")operator({)local_variable($tty)operator(})string( owned by: )operator({)local_variable($user)operator(})char(\\n)delimiter(")operator(;) + local_variable($stat) operator(=) predefined(stat)operator(()string<delimiter(')content(/dev/$tty)delimiter(')>operator(\))operator(;) + local_variable($pwent) operator(=) ident(posix_getpwuid)operator(()local_variable($stat)operator([)string<delimiter(')content(uid)delimiter(')>operator(])operator(\))operator(;) + local_variable($user) operator(=) predefined(isset)operator(()local_variable($pwent)operator([)string<delimiter(')content(name)delimiter(')>operator(])operator(\)) operator(?) local_variable($pwent)operator([)string<delimiter(')content(name)delimiter(')>operator(]) operator(:) string<delimiter(')content(Not available)delimiter(')>operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($tty)operator(})content( owned by: )operator({)local_variable($user)operator(})char(\\n)delimiter(")>operator(;) operator(}) operator(}) @@ -2695,44 +2695,44 @@ comment(// @@PLEAC@@_5.8) comment(// PHP offers the 'array_flip' function to perform the task of exchanging the keys / values) comment(// of a hash i.e. invert or 'flip' a hash) -local_variable($reverse) operator(=) ident(array_flip)operator(()local_variable($hash)operator(\))operator(;) +local_variable($reverse) operator(=) predefined(array_flip)operator(()local_variable($hash)operator(\))operator(;) comment(// ----------------------------) -local_variable($surname) operator(=) pre_type(array)operator(()delimiter(')string(Babe)delimiter(') operator(=>) delimiter(')string(Ruth)delimiter(')operator(,) delimiter(')string(Mickey)delimiter(') operator(=>) delimiter(')string(Mantle)delimiter(')operator(\))operator(;) -local_variable($first_name) operator(=) ident(array_flip)operator(()local_variable($surname)operator(\))operator(;) +local_variable($surname) operator(=) predefined(array)operator(()string<delimiter(')content(Babe)delimiter(')> operator(=>) string<delimiter(')content(Ruth)delimiter(')>operator(,) string<delimiter(')content(Mickey)delimiter(')> operator(=>) string<delimiter(')content(Mantle)delimiter(')>operator(\))operator(;) +local_variable($first_name) operator(=) predefined(array_flip)operator(()local_variable($surname)operator(\))operator(;) -pre_type(echo) delimiter(")operator({)local_variable($first_name)operator([)delimiter(')string(Mantle)delimiter(')operator(])operator(})char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")operator({)local_variable($first_name)operator([)string<delimiter(')content(Mantle)delimiter(')>operator(])operator(})char(\\n)delimiter(")>operator(;) comment(// ----------------------------) -local_variable($argc) operator(==) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})string( food|colour)char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(==) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})content( food|colour)char(\\n)delimiter(")>operator(\))operator(;) local_variable($given) operator(=) local_variable($argv)operator([)integer(1)operator(])operator(;) -local_variable($colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -local_variable($food) operator(=) ident(array_flip)operator(()local_variable($colour)operator(\))operator(;) +local_variable($food) operator(=) predefined(array_flip)operator(()local_variable($colour)operator(\))operator(;) -reserved(if) operator(()pre_type(isset)operator(()local_variable($colour)operator([)local_variable($given)operator(])operator(\))operator(\)) - pre_type(echo) delimiter(")operator({)local_variable($given)operator(})string( is a food with colour: )operator({)local_variable($colour)operator([)local_variable($given)operator(])operator(})char(\\n)delimiter(")operator(;) +reserved(if) operator(()predefined(isset)operator(()local_variable($colour)operator([)local_variable($given)operator(])operator(\))operator(\)) + predefined(echo) string<delimiter(")operator({)local_variable($given)operator(})content( is a food with colour: )operator({)local_variable($colour)operator([)local_variable($given)operator(])operator(})char(\\n)delimiter(")>operator(;) -reserved(if) operator(()pre_type(isset)operator(()local_variable($food)operator([)local_variable($given)operator(])operator(\))operator(\)) - pre_type(echo) delimiter(")operator({)local_variable($food)operator([)local_variable($given)operator(])operator(})string( is a food with colour: )operator({)local_variable($given)operator(})char(\\n)delimiter(")operator(;) +reserved(if) operator(()predefined(isset)operator(()local_variable($food)operator([)local_variable($given)operator(])operator(\))operator(\)) + predefined(echo) string<delimiter(")operator({)local_variable($food)operator([)local_variable($given)operator(])operator(})content( is a food with colour: )operator({)local_variable($given)operator(})char(\\n)delimiter(")>operator(;) comment(// ----------------------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) operator({) local_variable($foods_with_colour)operator([)local_variable($colour)operator(])operator([)operator(]) operator(=) local_variable($food)operator(;) operator(}) -local_variable($colour) operator(=) delimiter(')string(yellow)delimiter(')operator(;) -pre_type(echo) delimiter(")string(foods with colour )operator({)local_variable($colour)operator(})string( were: )delimiter(") operator(.) ident(join)operator(()delimiter(')string( )delimiter(')operator(,) local_variable($foods_with_colour)operator([)local_variable($colour)operator(])operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +local_variable($colour) operator(=) string<delimiter(')content(yellow)delimiter(')>operator(;) +predefined(echo) string<delimiter(")content(foods with colour )operator({)local_variable($colour)operator(})content( were: )delimiter(")> operator(.) predefined(join)operator(()string<delimiter(')content( )delimiter(')>operator(,) local_variable($foods_with_colour)operator([)local_variable($colour)operator(])operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_5.9) comment(// PHP implements a swag of sorting functions, most designed to work with numerically-indexed) @@ -2740,42 +2740,42 @@ comment(// arrays. For sorting hashes, the 'key' sorting functions are required: comment(// * 'ksort', 'krsort', 'uksort') comment(// Ascending order) -ident(ksort)operator(()local_variable($hash)operator(\))operator(;) +predefined(ksort)operator(()local_variable($hash)operator(\))operator(;) comment(// Descending order [i.e. reverse sort]) -ident(krsort)operator(()local_variable($hash)operator(\))operator(;) +predefined(krsort)operator(()local_variable($hash)operator(\))operator(;) comment(// Comparator-based sort) -pre_type(function) ident(comparator)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) +reserved(function) ident(comparator)operator(()local_variable($left)operator(,) local_variable($right)operator(\)) operator({) comment(// Compare left key with right key) - reserved(return) local_variable($left) operator(>) local_variable($right)operator(;) + predefined(return) local_variable($left) operator(>) local_variable($right)operator(;) operator(}) -ident(uksort)operator(()local_variable($hash)operator(,) delimiter(')string(comparator)delimiter(')operator(\))operator(;) +predefined(uksort)operator(()local_variable($hash)operator(,) string<delimiter(')content(comparator)delimiter(')>operator(\))operator(;) comment(// ----------------------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) comment(// ------------) -ident(ksort)operator(()local_variable($food_colour)operator(\))operator(;) +predefined(ksort)operator(()local_variable($food_colour)operator(\))operator(;) reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($food)operator(})string( is )operator({)local_variable($colour)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($food)operator(})content( is )operator({)local_variable($colour)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) -ident(uksort)operator(()local_variable($food_colour)operator(,) ident(create_function)operator(()delimiter(')string($left, $right)delimiter(')operator(,) delimiter(')string(return $left > $right;)delimiter(')operator(\))operator(\))operator(;) +predefined(uksort)operator(()local_variable($food_colour)operator(,) ident(create_function)operator(()string<delimiter(')content($left, $right)delimiter(')>operator(,) string<delimiter(')content(return $left > $right;)delimiter(')>operator(\))operator(\))operator(;) reserved(foreach)operator(()local_variable($food_colour) reserved(as) local_variable($food) operator(=>) local_variable($colour)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($food)operator(})string( is )operator({)local_variable($colour)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($food)operator(})content( is )operator({)local_variable($colour)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_5.10) @@ -2783,15 +2783,15 @@ comment(// PHP offers the 'array_merge' function for this task [a related functi comment(// may be used to create a hash from an array of keys, and one of values, respectively]) comment(// Merge two, or more, arrays) -local_variable($merged) operator(=) ident(array_merge)operator(()local_variable($a)operator(,) local_variable($b)operator(,) local_variable($c)operator(\))operator(;) +local_variable($merged) operator(=) predefined(array_merge)operator(()local_variable($a)operator(,) local_variable($b)operator(,) local_variable($c)operator(\))operator(;) comment(// Create a hash from array of keys, and of values, respectively) -local_variable($hash) operator(=) ident(array_combine)operator(()local_variable($keys)operator(,) local_variable($values)operator(\))operator(;) +local_variable($hash) operator(=) predefined(array_combine)operator(()local_variable($keys)operator(,) local_variable($values)operator(\))operator(;) comment(// ------------) comment(// Can always merge arrays manually ) -reserved(foreach)operator(()pre_type(array)operator(()local_variable($h1)operator(,) local_variable($h2)operator(,) local_variable($h3)operator(\)) reserved(as) local_variable($hash)operator(\)) +reserved(foreach)operator(()predefined(array)operator(()local_variable($h1)operator(,) local_variable($h2)operator(,) local_variable($h3)operator(\)) reserved(as) local_variable($hash)operator(\)) operator({) reserved(foreach)operator(()local_variable($hash) reserved(as) local_variable($key) operator(=>) local_variable($value)operator(\)) operator({) @@ -2805,26 +2805,26 @@ operator(}) comment(// ----------------------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -local_variable($drink_colour) operator(=) pre_type(array)operator(()delimiter(')string(Galliano)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Mai Tai)delimiter(') operator(=>) delimiter(')string(blue)delimiter(')operator(\))operator(;) +local_variable($drink_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Galliano)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Mai Tai)delimiter(')> operator(=>) string<delimiter(')content(blue)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($ingested_colour) operator(=) ident(array_merge)operator(()local_variable($food_colour)operator(,) local_variable($drink_colour)operator(\))operator(;) +local_variable($ingested_colour) operator(=) predefined(array_merge)operator(()local_variable($food_colour)operator(,) local_variable($drink_colour)operator(\))operator(;) comment(// ------------) -local_variable($substance_colour) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($substance_colour) operator(=) predefined(array)operator(()operator(\))operator(;) -reserved(foreach)operator(()pre_type(array)operator(()local_variable($food_colour)operator(,) local_variable($drink_colour)operator(\)) reserved(as) local_variable($hash)operator(\)) +reserved(foreach)operator(()predefined(array)operator(()local_variable($food_colour)operator(,) local_variable($drink_colour)operator(\)) reserved(as) local_variable($hash)operator(\)) operator({) reserved(foreach)operator(()local_variable($hash) reserved(as) local_variable($substance) operator(=>) local_variable($colour)operator(\)) operator({) - reserved(if) operator(()ident(array_key_exists)operator(()local_variable($substance)operator(,) local_variable($substance_colour)operator(\))operator(\)) + reserved(if) operator(()predefined(array_key_exists)operator(()local_variable($substance)operator(,) local_variable($substance_colour)operator(\))operator(\)) operator({) - pre_type(echo) delimiter(")string(Warning )operator({)local_variable($substance_colour)operator([)local_variable($substance)operator(])operator(})string( seen twice. Using first definition.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(Warning )operator({)local_variable($substance_colour)operator([)local_variable($substance)operator(])operator(})content( seen twice. Using first definition.)char(\\n)delimiter(")>operator(;) reserved(continue)operator(;) operator(}) local_variable($substance_colour)operator([)local_variable($substance)operator(]) operator(=) local_variable($colour)operator(;) @@ -2839,19 +2839,19 @@ comment(// * difference: array_diff and family) comment(// which may be used for this type of task) comment(// Keys occurring in both hashes) -local_variable($common) operator(=) ident(array_intersect_key)operator(()local_variable($h1)operator(,) local_variable($h2)operator(\))operator(;) +local_variable($common) operator(=) predefined(array_intersect_key)operator(()local_variable($h1)operator(,) local_variable($h2)operator(\))operator(;) comment(// Keys occurring in the first hash [left side], but not in the second hash) -local_variable($this_not_that) operator(=) ident(array_diff_key)operator(()local_variable($h1)operator(,) local_variable($h2)operator(\))operator(;) +local_variable($this_not_that) operator(=) predefined(array_diff_key)operator(()local_variable($h1)operator(,) local_variable($h2)operator(\))operator(;) comment(// ----------------------------) -local_variable($food_colour) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Banana)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) - delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($food_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Banana)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) + string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) -local_variable($citrus_colour) operator(=) pre_type(array)operator(()delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Orange)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(,) delimiter(')string(Lime)delimiter(') operator(=>) delimiter(')string(green)delimiter(')operator(\))operator(;) +local_variable($citrus_colour) operator(=) predefined(array)operator(()string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Orange)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(,) string<delimiter(')content(Lime)delimiter(')> operator(=>) string<delimiter(')content(green)delimiter(')>operator(\))operator(;) -local_variable($non_citrus) operator(=) ident(array_diff_key)operator(()local_variable($food_colour)operator(,) local_variable($citrus_colour)operator(\))operator(;) +local_variable($non_citrus) operator(=) predefined(array_diff_key)operator(()local_variable($food_colour)operator(,) local_variable($citrus_colour)operator(\))operator(;) comment(// @@PLEAC@@_5.12) comment(// PHP implements a special type known as a 'resource' that encompasses things like file handles,) @@ -2866,11 +2866,11 @@ comment(// I suspect it is this type of problem that the Perl::Tie package helps comment(// PHP doesn't, AFAIK, sport a similar facility, the examples in this section cannot be) comment(// implemented using file handles as keys) -local_variable($filenames) operator(=) pre_type(array)operator(()delimiter(')string(/etc/termcap)delimiter(')operator(,) delimiter(')string(/vmlinux)delimiter(')operator(,) delimiter(')string(/bin/cat)delimiter(')operator(\))operator(;) +local_variable($filenames) operator(=) predefined(array)operator(()string<delimiter(')content(/etc/termcap)delimiter(')>operator(,) string<delimiter(')content(/vmlinux)delimiter(')>operator(,) string<delimiter(')content(/bin/cat)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($filenames) reserved(as) local_variable($filename)operator(\)) operator({) - reserved(if) operator(()operator(!)operator(()local_variable($fh) operator(=) ident(fopen)operator(()local_variable($filename)operator(,) delimiter(')string(r)delimiter(')operator(\))operator(\))operator(\)) reserved(continue)operator(;) + reserved(if) operator(()operator(!)operator(()local_variable($fh) operator(=) predefined(fopen)operator(()local_variable($filename)operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(\))operator(\)) reserved(continue)operator(;) comment(// Cannot do this as required by the Perl code:) comment(// $name[$fh] = $filename;) @@ -2891,9 +2891,9 @@ comment(// but since '$fh' cannot be a key, either of these will work:) comment(//) comment(// foreach($name as $filename => $fh\)) comment(// or) -reserved(foreach)operator(()ident(array_values)operator(()local_variable($name)operator(\)) reserved(as) local_variable($fh)operator(\)) +reserved(foreach)operator(()predefined(array_values)operator(()local_variable($name)operator(\)) reserved(as) local_variable($fh)operator(\)) operator({) - ident(fclose)operator(()local_variable($fh)operator(\))operator(;) + predefined(fclose)operator(()local_variable($fh)operator(\))operator(;) operator(}) comment(// @@PLEAC@@_5.13) @@ -2902,34 +2902,34 @@ comment(// respectively. Thus, there is no need to presize a hash, nor is there, comment(// means of doing so except by the number of datums used when defining the hash) comment(// zero elements) -local_variable($hash) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($hash) operator(=) predefined(array)operator(()operator(\))operator(;) comment(// ------------) comment(// three elements) -local_variable($hash) operator(=) pre_type(array)operator(()delimiter(')string(Apple)delimiter(') operator(=>) delimiter(')string(red)delimiter(')operator(,) delimiter(')string(Lemon)delimiter(') operator(=>) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(Carrot)delimiter(') operator(=>) delimiter(')string(orange)delimiter(')operator(\))operator(;) +local_variable($hash) operator(=) predefined(array)operator(()string<delimiter(')content(Apple)delimiter(')> operator(=>) string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(Lemon)delimiter(')> operator(=>) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(Carrot)delimiter(')> operator(=>) string<delimiter(')content(orange)delimiter(')>operator(\))operator(;) comment(// @@PLEAC@@_5.14) reserved(foreach)operator(()local_variable($array) reserved(as) local_variable($element)operator(\)) local_variable($count)operator([)local_variable($element)operator(]) operator(+)operator(=) integer(1)operator(;) comment(// @@PLEAC@@_5.15) -local_variable($father) operator(=) pre_type(array)operator(()delimiter(')string(Cain)delimiter(') operator(=>) delimiter(')string(Adam)delimiter(')operator(,) delimiter(')string(Abel)delimiter(') operator(=>) delimiter(')string(Adam)delimiter(')operator(,) delimiter(')string(Seth)delimiter(') operator(=>) delimiter(')string(Adam)delimiter(')operator(,) delimiter(')string(Enoch)delimiter(') operator(=>) delimiter(')string(Cain)delimiter(')operator(,) - delimiter(')string(Irad)delimiter(') operator(=>) delimiter(')string(Enoch)delimiter(')operator(,) delimiter(')string(Mehujael)delimiter(') operator(=>) delimiter(')string(Irad)delimiter(')operator(,) delimiter(')string(Methusael)delimiter(')operator(=>) delimiter(')string(Mehujael)delimiter(')operator(,) - delimiter(')string(Lamech)delimiter(') operator(=>) delimiter(')string(Methusael)delimiter(')operator(,) delimiter(')string(Jabal)delimiter(') operator(=>) delimiter(')string(Lamech)delimiter(')operator(,) delimiter(')string(Jubal)delimiter(') operator(=>) delimiter(')string(Lamech)delimiter(')operator(,) - delimiter(')string(Tubalcain)delimiter(') operator(=>) delimiter(')string(Lamech)delimiter(')operator(,) delimiter(')string(Enos)delimiter(') operator(=>) delimiter(')string(Seth)delimiter(')operator(\))operator(;) +local_variable($father) operator(=) predefined(array)operator(()string<delimiter(')content(Cain)delimiter(')> operator(=>) string<delimiter(')content(Adam)delimiter(')>operator(,) string<delimiter(')content(Abel)delimiter(')> operator(=>) string<delimiter(')content(Adam)delimiter(')>operator(,) string<delimiter(')content(Seth)delimiter(')> operator(=>) string<delimiter(')content(Adam)delimiter(')>operator(,) string<delimiter(')content(Enoch)delimiter(')> operator(=>) string<delimiter(')content(Cain)delimiter(')>operator(,) + string<delimiter(')content(Irad)delimiter(')> operator(=>) string<delimiter(')content(Enoch)delimiter(')>operator(,) string<delimiter(')content(Mehujael)delimiter(')> operator(=>) string<delimiter(')content(Irad)delimiter(')>operator(,) string<delimiter(')content(Methusael)delimiter(')>operator(=>) string<delimiter(')content(Mehujael)delimiter(')>operator(,) + string<delimiter(')content(Lamech)delimiter(')> operator(=>) string<delimiter(')content(Methusael)delimiter(')>operator(,) string<delimiter(')content(Jabal)delimiter(')> operator(=>) string<delimiter(')content(Lamech)delimiter(')>operator(,) string<delimiter(')content(Jubal)delimiter(')> operator(=>) string<delimiter(')content(Lamech)delimiter(')>operator(,) + string<delimiter(')content(Tubalcain)delimiter(')> operator(=>) string<delimiter(')content(Lamech)delimiter(')>operator(,) string<delimiter(')content(Enos)delimiter(')> operator(=>) string<delimiter(')content(Seth)delimiter(')>operator(\))operator(;) comment(// ------------) -local_variable($name) operator(=) ident(trim)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) +local_variable($name) operator(=) predefined(trim)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) -reserved(while) operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) +reserved(while) operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) - reserved(while) operator(()constant(TRUE)operator(\)) + reserved(while) operator(()reserved(TRUE)operator(\)) operator({) - pre_type(echo) delimiter(")local_variable($name)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")local_variable($name)char(\\n)delimiter(")>operator(;) comment(// Can use either:) - reserved(if) operator(()operator(!)pre_type(isset)operator(()local_variable($father)operator([)local_variable($name)operator(])operator(\))operator(\)) reserved(break)operator(;) + reserved(if) operator(()operator(!)predefined(isset)operator(()local_variable($father)operator([)local_variable($name)operator(])operator(\))operator(\)) reserved(break)operator(;) local_variable($name) operator(=) local_variable($father)operator([)local_variable($name)operator(])operator(;) comment(// or:) @@ -2940,13 +2940,13 @@ operator({) comment(// if (!($name = $father[$name]\)\) break;) operator(}) - pre_type(echo) delimiter(")char(\\n)delimiter(")operator(;) - local_variable($name) operator(=) ident(trim)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) + predefined(echo) string<delimiter(")char(\\n)delimiter(")>operator(;) + local_variable($name) operator(=) predefined(trim)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) operator(}) comment(// ----------------------------) -ident(define)operator(()constant(SEP)operator(,) delimiter(')string( )delimiter(')operator(\))operator(;) +predefined(define)operator(()constant(SEP)operator(,) string<delimiter(')content( )delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($father) reserved(as) local_variable($child) operator(=>) local_variable($parent)operator(\)) operator({) @@ -2956,150 +2956,150 @@ operator({) local_variable($children)operator([)local_variable($parent)operator(]) operator(.)operator(=) constant(SEP) operator(.) local_variable($child)operator(;) operator(}) -local_variable($name) operator(=) ident(trim)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) +local_variable($name) operator(=) predefined(trim)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) -reserved(while) operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) +reserved(while) operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) - pre_type(echo) local_variable($name) operator(.) delimiter(')string( begat )delimiter(')operator(;) + predefined(echo) local_variable($name) operator(.) string<delimiter(')content( begat )delimiter(')>operator(;) reserved(if) operator(()operator(!)local_variable($children)operator([)local_variable($name)operator(])operator(\)) - pre_type(echo) delimiter(")string(Nothing)char(\\n)delimiter(") + predefined(echo) string<delimiter(")content(Nothing)char(\\n)delimiter(")> reserved(else) - pre_type(echo) ident(str_replace)operator(()constant(SEP)operator(,) delimiter(')string(, )delimiter(')operator(,) local_variable($children)operator([)local_variable($name)operator(])operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) predefined(str_replace)operator(()constant(SEP)operator(,) string<delimiter(')content(, )delimiter(')>operator(,) local_variable($children)operator([)local_variable($name)operator(])operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) - local_variable($name) operator(=) ident(trim)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) + local_variable($name) operator(=) predefined(trim)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(\))operator(;) operator(}) comment(// ----------------------------) -ident(define)operator(()constant(SEP)operator(,) delimiter(')string( )delimiter(')operator(\))operator(;) +predefined(define)operator(()constant(SEP)operator(,) string<delimiter(')content( )delimiter(')>operator(\))operator(;) -local_variable($files) operator(=) pre_type(array)operator(()delimiter(')string(/tmp/a)delimiter(')operator(,) delimiter(')string(/tmp/b)delimiter(')operator(,) delimiter(')string(/tmp/c)delimiter(')operator(\))operator(;) +local_variable($files) operator(=) predefined(array)operator(()string<delimiter(')content(/tmp/a)delimiter(')>operator(,) string<delimiter(')content(/tmp/b)delimiter(')>operator(,) string<delimiter(')content(/tmp/c)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($file)operator(\)) operator({) - reserved(if) operator(()operator(!)ident(is_file)operator(()local_variable($file)operator(\))operator(\)) operator({) pre_type(echo) delimiter(")string(Skipping )operator({)local_variable($file)operator(})char(\\n)delimiter(")operator(;) reserved(continue)operator(;) operator(}) - reserved(if) operator(()operator(!)operator(()local_variable($fh) operator(=) ident(fopen)operator(()local_variable($file)operator(,) delimiter(')string(r)delimiter(')operator(\))operator(\))operator(\)) operator({) pre_type(echo) delimiter(")string(Skipping )operator({)local_variable($file)operator(})char(\\n)delimiter(")operator(;) reserved(continue)operator(;) operator(}) + reserved(if) operator(()operator(!)predefined(is_file)operator(()local_variable($file)operator(\))operator(\)) operator({) predefined(echo) string<delimiter(")content(Skipping )operator({)local_variable($file)operator(})char(\\n)delimiter(")>operator(;) reserved(continue)operator(;) operator(}) + reserved(if) operator(()operator(!)operator(()local_variable($fh) operator(=) predefined(fopen)operator(()local_variable($file)operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(\))operator(\)) operator({) predefined(echo) string<delimiter(")content(Skipping )operator({)local_variable($file)operator(})char(\\n)delimiter(")>operator(;) reserved(continue)operator(;) operator(}) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($fh)operator(\))operator(;) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($fh)operator(\))operator(;) - reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($fh)operator(\))operator(\)) + reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($fh)operator(\))operator(\)) operator({) - reserved(if) operator(()ident(preg_match)operator(()delimiter(')string(/^)string(\\)string(s*#)string(\\)string(s*include)string(\\)string(s*<([^>]+\)>/)delimiter(')operator(,) local_variable($line)operator(,) local_variable($matches)operator(\))operator(\)) + reserved(if) operator(()predefined(preg_match)operator(()string<delimiter(')content(/^)content(\\s)content(*#)content(\\s)content(*include)content(\\s)content(*<([^>]+\)>/)delimiter(')>operator(,) local_variable($line)operator(,) local_variable($matches)operator(\))operator(\)) operator({) - reserved(if) operator(()pre_type(isset)operator(()local_variable($includes)operator([)local_variable($matches)operator([)integer(1)operator(])operator(])operator(\))operator(\)) + reserved(if) operator(()predefined(isset)operator(()local_variable($includes)operator([)local_variable($matches)operator([)integer(1)operator(])operator(])operator(\))operator(\)) local_variable($includes)operator([)local_variable($matches)operator([)integer(1)operator(])operator(]) operator(.)operator(=) constant(SEP) operator(.) local_variable($file)operator(;) reserved(else) local_variable($includes)operator([)local_variable($matches)operator([)integer(1)operator(])operator(]) operator(=) local_variable($file)operator(;) operator(}) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($fh)operator(\))operator(;) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($fh)operator(\))operator(;) operator(}) - ident(fclose)operator(()local_variable($fh)operator(\))operator(;) + predefined(fclose)operator(()local_variable($fh)operator(\))operator(;) operator(}) -ident(print_r)operator(()local_variable($includes)operator(\))operator(;) +predefined(print_r)operator(()local_variable($includes)operator(\))operator(;) comment(// @@PLEAC@@_5.16) comment(// @@INCOMPLETE@@) comment(// @@INCOMPLETE@@) comment(// @@PLEAC@@_9.0) -local_variable($entry) operator(=) ident(stat)operator(()delimiter(')string(/bin/vi)delimiter(')operator(\))operator(;) -local_variable($entry) operator(=) ident(stat)operator(()delimiter(')string(/usr/bin)delimiter(')operator(\))operator(;) -local_variable($entry) operator(=) ident(stat)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\))operator(;) +local_variable($entry) operator(=) predefined(stat)operator(()string<delimiter(')content(/bin/vi)delimiter(')>operator(\))operator(;) +local_variable($entry) operator(=) predefined(stat)operator(()string<delimiter(')content(/usr/bin)delimiter(')>operator(\))operator(;) +local_variable($entry) operator(=) predefined(stat)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\))operator(;) comment(// ------------) -local_variable($entry) operator(=) ident(stat)operator(()delimiter(')string(/bin/vi)delimiter(')operator(\))operator(;) +local_variable($entry) operator(=) predefined(stat)operator(()string<delimiter(')content(/bin/vi)delimiter(')>operator(\))operator(;) -local_variable($ctime) operator(=) local_variable($entry)operator([)delimiter(')string(ctime)delimiter(')operator(])operator(;) -local_variable($size) operator(=) local_variable($entry)operator([)delimiter(')string(size)delimiter(')operator(])operator(;) +local_variable($ctime) operator(=) local_variable($entry)operator([)string<delimiter(')content(ctime)delimiter(')>operator(])operator(;) +local_variable($size) operator(=) local_variable($entry)operator([)string<delimiter(')content(size)delimiter(')>operator(])operator(;) comment(// ----------------------------) comment(// For the simple task of determining whether a file contains, text', a simple) comment(// function that searches for a newline could be implemented. Not exactly) comment(// foolproof, but very simple, low overhead, no installation headaches ...) -pre_type(function) ident(containsText)operator(()local_variable($file)operator(\)) +reserved(function) ident(containsText)operator(()local_variable($file)operator(\)) operator({) - local_variable($status) operator(=) constant(FALSE)operator(;) + local_variable($status) operator(=) reserved(FALSE)operator(;) - reserved(if) operator(()operator(()local_variable($fp) operator(=) ident(fopen)operator(()local_variable($file)operator(,) delimiter(')string(r)delimiter(')operator(\))operator(\))operator(\)) + reserved(if) operator(()operator(()local_variable($fp) operator(=) predefined(fopen)operator(()local_variable($file)operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(\))operator(\)) operator({) - reserved(while) operator(()constant(FALSE) operator(!==) operator(()local_variable($char) operator(=) ident(fgetc)operator(()local_variable($fp)operator(\))operator(\))operator(\)) + reserved(while) operator(()reserved(FALSE) operator(!==) operator(()local_variable($char) operator(=) predefined(fgetc)operator(()local_variable($fp)operator(\))operator(\))operator(\)) operator({) - reserved(if) operator(()local_variable($char) operator(==) delimiter(")char(\\n)delimiter(")operator(\)) operator({) local_variable($status) operator(=) constant(TRUE)operator(;) reserved(break)operator(;) operator(}) + reserved(if) operator(()local_variable($char) operator(==) string<delimiter(")char(\\n)delimiter(")>operator(\)) operator({) local_variable($status) operator(=) reserved(TRUE)operator(;) reserved(break)operator(;) operator(}) operator(}) - ident(fclose)operator(()local_variable($fp)operator(\))operator(;) + predefined(fclose)operator(()local_variable($fp)operator(\))operator(;) operator(}) - reserved(return) local_variable($status)operator(;) + predefined(return) local_variable($status)operator(;) operator(}) comment(// PHP offers the [currently experimental] Fileinfo group of functions to) comment(// determine file types based on their contents / 'magic numbers'. This) comment(// is functionality similar to the *NIX, 'file' utility. Note that it must) comment(// first be installed using the PEAR utility [see PHP documentation] ) -pre_type(function) ident(isTextFile)operator(()local_variable($file)operator(\)) +reserved(function) ident(isTextFile)operator(()local_variable($file)operator(\)) operator({) comment(// Note: untested code, but I believe this is how it is supposed to work) local_variable($finfo) operator(=) ident(finfo_open)operator(()constant(FILEINFO_NONE)operator(\))operator(;) - local_variable($status) operator(=) operator(()ident(finfo_file)operator(()local_variable($finfo)operator(,) local_variable($file)operator(\)) operator(==) delimiter(')string(ASCII text)delimiter(')operator(\))operator(;) + local_variable($status) operator(=) operator(()ident(finfo_file)operator(()local_variable($finfo)operator(,) local_variable($file)operator(\)) operator(==) string<delimiter(')content(ASCII text)delimiter(')>operator(\))operator(;) ident(finfo_close)operator(()local_variable($finfo)operator(\))operator(;) - reserved(return) local_variable($status)operator(;) + predefined(return) local_variable($status)operator(;) operator(}) comment(// Alternatively, use the *NIX utility, 'file', directly) -pre_type(function) ident(isTextFile)operator(()local_variable($file)operator(\)) +reserved(function) ident(isTextFile)operator(()local_variable($file)operator(\)) operator({) - reserved(return) ident(exec)operator(()ident(trim)operator(()delimiter(')string(file -bN )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($file)operator(\))operator(\))operator(\)) operator(==) delimiter(')string(ASCII text)delimiter(')operator(;) + predefined(return) predefined(exec)operator(()predefined(trim)operator(()string<delimiter(')content(file -bN )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($file)operator(\))operator(\))operator(\)) operator(==) string<delimiter(')content(ASCII text)delimiter(')>operator(;) operator(}) comment(// ----) -ident(containsText)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(File )operator({)local_variable($argv)operator([)integer(1)operator(])operator(})string( doesn't have any text in it)char(\\n)delimiter(")operator(\))operator(;) +ident(containsText)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(File )operator({)local_variable($argv)operator([)integer(1)operator(])operator(})content( doesn't have any text in it)char(\\n)delimiter(")>operator(\))operator(;) -ident(isTextFile)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(File )operator({)local_variable($argv)operator([)integer(1)operator(])operator(})string( doesn't have any text in it)char(\\n)delimiter(")operator(\))operator(;) +ident(isTextFile)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(File )operator({)local_variable($argv)operator([)integer(1)operator(])operator(})content( doesn't have any text in it)char(\\n)delimiter(")>operator(\))operator(;) comment(// ----------------------------) -local_variable($dirname) operator(=) delimiter(')string(/usr/bin/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/usr/bin/)delimiter(')>operator(;) -operator(()local_variable($dirhdl) operator(=) ident(opendir)operator(()local_variable($dirname)operator(\))operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Couldn't open )operator({)local_variable($dirname)operator(})char(\\n)delimiter(")operator(\))operator(;) +operator(()local_variable($dirhdl) operator(=) predefined(opendir)operator(()local_variable($dirname)operator(\))operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Couldn't open )operator({)local_variable($dirname)operator(})char(\\n)delimiter(")>operator(\))operator(;) -reserved(while) operator(()operator(()local_variable($file) operator(=) ident(readdir)operator(()local_variable($dirhdl)operator(\))operator(\)) operator(!==) constant(FALSE)operator(\)) +reserved(while) operator(()operator(()local_variable($file) operator(=) predefined(readdir)operator(()local_variable($dirhdl)operator(\))operator(\)) operator(!==) reserved(FALSE)operator(\)) operator({) - ident(printf)operator(()delimiter(")string(Inside %s is something called: %s)char(\\n)delimiter(")operator(,) local_variable($dirname)operator(,) local_variable($file)operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(Inside %s is something called: %s)char(\\n)delimiter(")>operator(,) local_variable($dirname)operator(,) local_variable($file)operator(\))operator(;) operator(}) -ident(closedir)operator(()local_variable($dirhdl)operator(\))operator(;) +predefined(closedir)operator(()local_variable($dirhdl)operator(\))operator(;) comment(// @@PLEAC@@_9.1) -local_variable($filename) operator(=) delimiter(')string(example.txt)delimiter(')operator(;) +local_variable($filename) operator(=) string<delimiter(')content(example.txt)delimiter(')>operator(;) comment(// Get the file's current access and modification time, respectively) -local_variable($fs) operator(=) ident(stat)operator(()local_variable($filename)operator(\))operator(;) +local_variable($fs) operator(=) predefined(stat)operator(()local_variable($filename)operator(\))operator(;) -local_variable($readtime) operator(=) local_variable($fs)operator([)delimiter(')string(atime)delimiter(')operator(])operator(;) -local_variable($writetime) operator(=) local_variable($fs)operator([)delimiter(')string(mtime)delimiter(')operator(])operator(;) +local_variable($readtime) operator(=) local_variable($fs)operator([)string<delimiter(')content(atime)delimiter(')>operator(])operator(;) +local_variable($writetime) operator(=) local_variable($fs)operator([)string<delimiter(')content(mtime)delimiter(')>operator(])operator(;) comment(// Alter $writetime, and $readtime ...) comment(// Update file timestamp) -ident(touch)operator(()local_variable($filename)operator(,) local_variable($writetime)operator(,) local_variable($readtime)operator(\))operator(;) +predefined(touch)operator(()local_variable($filename)operator(,) local_variable($writetime)operator(,) local_variable($readtime)operator(\))operator(;) comment(// ----------------------------) -local_variable($filename) operator(=) delimiter(')string(example.txt)delimiter(')operator(;) +local_variable($filename) operator(=) string<delimiter(')content(example.txt)delimiter(')>operator(;) comment(// Get the file's current access and modification time, respectively) -local_variable($fs) operator(=) ident(stat)operator(()local_variable($filename)operator(\))operator(;) +local_variable($fs) operator(=) predefined(stat)operator(()local_variable($filename)operator(\))operator(;) -local_variable($atime) operator(=) local_variable($fs)operator([)delimiter(')string(atime)delimiter(')operator(])operator(;) -local_variable($mtime) operator(=) local_variable($fs)operator([)delimiter(')string(mtime)delimiter(')operator(])operator(;) +local_variable($atime) operator(=) local_variable($fs)operator([)string<delimiter(')content(atime)delimiter(')>operator(])operator(;) +local_variable($mtime) operator(=) local_variable($fs)operator([)string<delimiter(')content(mtime)delimiter(')>operator(])operator(;) comment(// Dedicated functions also exist to retrieve this information:) comment(//) @@ -3110,7 +3110,7 @@ comment(//) comment(// Perform date arithmetic. Traditional approach where arithmetic is performed) comment(// directly with Epoch Seconds [i.e. the *NIX time stamp value] will work ...) -ident(define)operator(()delimiter(')string(SECONDS_PER_DAY)delimiter(')operator(,) integer(60) operator(*) integer(60) operator(*) integer(24)operator(\))operator(;) +predefined(define)operator(()string<delimiter(')content(SECONDS_PER_DAY)delimiter(')>operator(,) integer(60) operator(*) integer(60) operator(*) integer(24)operator(\))operator(;) comment(// Set file's access and modification times to 1 week ago) local_variable($atime) operator(-)operator(=) integer(7) operator(*) constant(SECONDS_PER_DAY)operator(;) @@ -3119,48 +3119,48 @@ local_variable($mtime) operator(-)operator(=) integer(7) operator(*) constant(SE comment(// ... but care must be taken to account for daylight saving. Therefore, the) comment(// recommended approach is to use library functions to perform such tasks:) -local_variable($atime) operator(=) ident(strtotime)operator(()delimiter(')string(-7 days)delimiter(')operator(,) local_variable($atime)operator(\))operator(;) -local_variable($mtime) operator(=) ident(strtotime)operator(()delimiter(')string(-7 days)delimiter(')operator(,) local_variable($mtime)operator(\))operator(;) +local_variable($atime) operator(=) predefined(strtotime)operator(()string<delimiter(')content(-7 days)delimiter(')>operator(,) local_variable($atime)operator(\))operator(;) +local_variable($mtime) operator(=) predefined(strtotime)operator(()string<delimiter(')content(-7 days)delimiter(')>operator(,) local_variable($mtime)operator(\))operator(;) comment(// Update file timestamp) -ident(touch)operator(()local_variable($filename)operator(,) local_variable($mtime)operator(,) local_variable($atime)operator(\))operator(;) +predefined(touch)operator(()local_variable($filename)operator(,) local_variable($mtime)operator(,) local_variable($atime)operator(\))operator(;) comment(// Good idea to clear the cache after such updates have occurred so fresh) comment(// values will be retrieved on next access) -ident(clearstatcache)operator(()operator(\))operator(;) +predefined(clearstatcache)operator(()operator(\))operator(;) comment(// ----------------------------) -local_variable($argc) operator(==) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})string( filename)char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(==) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})content( filename)char(\\n)delimiter(")>operator(\))operator(;) local_variable($filename) operator(=) local_variable($argv)operator([)integer(1)operator(])operator(;) -local_variable($fs) operator(=) ident(stat)operator(()local_variable($filename)operator(\))operator(;) +local_variable($fs) operator(=) predefined(stat)operator(()local_variable($filename)operator(\))operator(;) -local_variable($atime) operator(=) local_variable($fs)operator([)delimiter(')string(atime)delimiter(')operator(])operator(;) -local_variable($mtime) operator(=) local_variable($fs)operator([)delimiter(')string(mtime)delimiter(')operator(])operator(;) +local_variable($atime) operator(=) local_variable($fs)operator([)string<delimiter(')content(atime)delimiter(')>operator(])operator(;) +local_variable($mtime) operator(=) local_variable($fs)operator([)string<delimiter(')content(mtime)delimiter(')>operator(])operator(;) comment(// Careful here: since interactive, use, 'system', not 'exec', to launch [latter) comment(// does not work under *NIX - at least, not for me :\)]) -ident(system)operator(()ident(trim)operator(()ident(getenv)operator(()delimiter(')string(EDITOR)delimiter(')operator(\)) operator(.) delimiter(')string( vi )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($filename)operator(\))operator(\))operator(,) local_variable($retcode)operator(\))operator(;) +predefined(system)operator(()predefined(trim)operator(()predefined(getenv)operator(()string<delimiter(')content(EDITOR)delimiter(')>operator(\)) operator(.) string<delimiter(')content( vi )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($filename)operator(\))operator(\))operator(,) local_variable($retcode)operator(\))operator(;) -ident(touch)operator(()local_variable($filename)operator(,) local_variable($mtime)operator(,) local_variable($atime)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Error updating timestamp on file, )operator({)local_variable($filename)operator(})string(!)char(\\n)delimiter(")operator(\))operator(;) +predefined(touch)operator(()local_variable($filename)operator(,) local_variable($mtime)operator(,) local_variable($atime)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Error updating timestamp on file, )operator({)local_variable($filename)operator(})content(!)char(\\n)delimiter(")>operator(\))operator(;) comment(// @@PLEAC@@_9.2) comment(// The 'unlink' function is used to delete regular files, whilst the 'rmdir' function) comment(// does the same on non-empty directories. AFAIK, no recursive-deletion facility) comment(// exists, and must be manually programmed) -local_variable($filename) operator(=) delimiter(')string(...)delimiter(')operator(;) +local_variable($filename) operator(=) string<delimiter(')content(...)delimiter(')>operator(;) -operator(@)ident(unlink)operator(()local_variable($filename)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Can't delete, )operator({)local_variable($filename)operator(})string(!)char(\\n)delimiter(")operator(\))operator(;) +operator(@)predefined(unlink)operator(()local_variable($filename)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Can't delete, )operator({)local_variable($filename)operator(})content(!)char(\\n)delimiter(")>operator(\))operator(;) comment(// ------------) -local_variable($files) operator(=) ident(glob)operator(()delimiter(')string(...)delimiter(')operator(\))operator(;) -local_variable($problem) operator(=) constant(FALSE)operator(;) +local_variable($files) operator(=) predefined(glob)operator(()string<delimiter(')content(...)delimiter(')>operator(\))operator(;) +local_variable($problem) operator(=) reserved(FALSE)operator(;) comment(// Could simply use a foreach loop) -reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) operator(@)ident(unlink)operator(()local_variable($filename)operator(\)) operator(|)operator(|) local_variable($problem) operator(=) constant(TRUE)operator(;) operator(}) +reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) operator(@)predefined(unlink)operator(()local_variable($filename)operator(\)) operator(|)operator(|) local_variable($problem) operator(=) reserved(TRUE)operator(;) operator(}) comment(//) comment(// Alternatively, an applicative approach could be used, one closer in spirit to) @@ -3172,20 +3172,20 @@ comment(//) reserved(if) operator(()local_variable($problem)operator(\)) operator({) - ident(fwrite)operator(()constant(STDERR)operator(,) delimiter(')string(Could not delete all of:)delimiter(')operator(\))operator(;) - reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) ident(fwrite)operator(()constant(STDERR)operator(,) delimiter(')string( )delimiter(') operator(.) local_variable($filename)operator(\))operator(;) operator(}) - ident(fwrite)operator(()constant(STDERR)operator(,) delimiter(")char(\\n)delimiter(")operator(\))operator(;) reserved(exit)operator(()integer(1)operator(\))operator(;) + predefined(fwrite)operator(()constant(STDERR)operator(,) string<delimiter(')content(Could not delete all of:)delimiter(')>operator(\))operator(;) + reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) predefined(fwrite)operator(()constant(STDERR)operator(,) string<delimiter(')content( )delimiter(')> operator(.) local_variable($filename)operator(\))operator(;) operator(}) + predefined(fwrite)operator(()constant(STDERR)operator(,) string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) predefined(exit)operator(()integer(1)operator(\))operator(;) operator(}) comment(// ------------) -pre_type(function) ident(rmAll)operator(()local_variable($files)operator(\)) +reserved(function) ident(rmAll)operator(()local_variable($files)operator(\)) operator({) local_variable($count) operator(=) integer(0)operator(;) - reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) operator(@)ident(unlink)operator(()local_variable($filename)operator(\)) operator(&)operator(&) local_variable($count)operator(++)operator(;) operator(})operator(;) + reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) operator(@)predefined(unlink)operator(()local_variable($filename)operator(\)) operator(&)operator(&) local_variable($count)operator(++)operator(;) operator(})operator(;) - reserved(return) local_variable($count)operator(;) + predefined(return) local_variable($count)operator(;) comment(// An applicative alternative using 'create_function', PHP's rough equivalent of 'lambda' ...) comment(//) @@ -3195,52 +3195,52 @@ operator(}) comment(// ----) -local_variable($files) operator(=) ident(glob)operator(()delimiter(')string(...)delimiter(')operator(\))operator(;) -local_variable($toBeDeleted) operator(=) ident(sizeof)operator(()local_variable($files)operator(\))operator(;) +local_variable($files) operator(=) predefined(glob)operator(()string<delimiter(')content(...)delimiter(')>operator(\))operator(;) +local_variable($toBeDeleted) operator(=) predefined(sizeof)operator(()local_variable($files)operator(\))operator(;) local_variable($count) operator(=) ident(rmAll)operator(()local_variable($files)operator(\))operator(;) -operator(()local_variable($count) operator(==) local_variable($toBeDeleted)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Could only delete )operator({)local_variable($count)operator(})string( of )operator({)local_variable($toBeDeleted)operator(})string( files)char(\\n)delimiter(")operator(\))operator(;) +operator(()local_variable($count) operator(==) local_variable($toBeDeleted)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Could only delete )operator({)local_variable($count)operator(})content( of )operator({)local_variable($toBeDeleted)operator(})content( files)char(\\n)delimiter(")>operator(\))operator(;) comment(// @@PLEAC@@_9.3) -local_variable($oldfile) operator(=) delimiter(')string(/tmp/old)delimiter(')operator(;) local_variable($newfile) operator(=) delimiter(')string(/tmp/new)delimiter(')operator(;) +local_variable($oldfile) operator(=) string<delimiter(')content(/tmp/old)delimiter(')>operator(;) local_variable($newfile) operator(=) string<delimiter(')content(/tmp/new)delimiter(')>operator(;) -ident(copy)operator(()local_variable($oldfile)operator(,) local_variable($newfile)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Error copying file)char(\\n)delimiter(")operator(\))operator(;) +predefined(copy)operator(()local_variable($oldfile)operator(,) local_variable($newfile)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Error copying file)char(\\n)delimiter(")>operator(\))operator(;) comment(// ----------------------------) comment(// All the following copy a file by copying its contents. Examples do so in a single) comment(// operation, but it is also possible to copy arbitrary blocks, or, line-by-line in ) comment(// the case of 'text' files) -local_variable($oldfile) operator(=) delimiter(')string(/tmp/old)delimiter(')operator(;) local_variable($newfile) operator(=) delimiter(')string(/tmp/new)delimiter(')operator(;) +local_variable($oldfile) operator(=) string<delimiter(')content(/tmp/old)delimiter(')>operator(;) local_variable($newfile) operator(=) string<delimiter(')content(/tmp/new)delimiter(')>operator(;) -reserved(if) operator(()ident(is_file)operator(()local_variable($oldfile)operator(\))operator(\)) - ident(file_put_contents)operator(()local_variable($newfile)operator(,) ident(file_get_contents)operator(()local_variable($oldfile)operator(\))operator(\))operator(;) +reserved(if) operator(()predefined(is_file)operator(()local_variable($oldfile)operator(\))operator(\)) + predefined(file_put_contents)operator(()local_variable($newfile)operator(,) predefined(file_get_contents)operator(()local_variable($oldfile)operator(\))operator(\))operator(;) reserved(else) - reserved(die)operator(()delimiter(")string(Problem copying file )operator({)local_variable($oldfile)operator(})string( to file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")operator(\))operator(;) + predefined(die)operator(()string<delimiter(")content(Problem copying file )operator({)local_variable($oldfile)operator(})content( to file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")>operator(\))operator(;) comment(// ------------) -local_variable($oldfile) operator(=) delimiter(')string(/tmp/old)delimiter(')operator(;) local_variable($newfile) operator(=) delimiter(')string(/tmp/new)delimiter(')operator(;) +local_variable($oldfile) operator(=) string<delimiter(')content(/tmp/old)delimiter(')>operator(;) local_variable($newfile) operator(=) string<delimiter(')content(/tmp/new)delimiter(')>operator(;) -ident(fwrite)operator(()operator(()local_variable($nh) operator(=) ident(fopen)operator(()local_variable($newfile)operator(,) delimiter(')string(wb)delimiter(')operator(\))operator(\))operator(,) ident(fread)operator(()operator(()local_variable($oh) operator(=) ident(fopen)operator(()local_variable($oldfile)operator(,) delimiter(')string(rb)delimiter(')operator(\))operator(\))operator(,) ident(filesize)operator(()local_variable($oldfile)operator(\))operator(\))operator(\))operator(;) -ident(fclose)operator(()local_variable($oh)operator(\))operator(;) -ident(fclose)operator(()local_variable($nh)operator(\))operator(;) +predefined(fwrite)operator(()operator(()local_variable($nh) operator(=) predefined(fopen)operator(()local_variable($newfile)operator(,) string<delimiter(')content(wb)delimiter(')>operator(\))operator(\))operator(,) predefined(fread)operator(()operator(()local_variable($oh) operator(=) predefined(fopen)operator(()local_variable($oldfile)operator(,) string<delimiter(')content(rb)delimiter(')>operator(\))operator(\))operator(,) predefined(filesize)operator(()local_variable($oldfile)operator(\))operator(\))operator(\))operator(;) +predefined(fclose)operator(()local_variable($oh)operator(\))operator(;) +predefined(fclose)operator(()local_variable($nh)operator(\))operator(;) comment(// ------------) comment(// As above, but with some error checking / handling) -local_variable($oldfile) operator(=) delimiter(')string(/tmp/old)delimiter(')operator(;) local_variable($newfile) operator(=) delimiter(')string(/tmp/new)delimiter(')operator(;) +local_variable($oldfile) operator(=) string<delimiter(')content(/tmp/old)delimiter(')>operator(;) local_variable($newfile) operator(=) string<delimiter(')content(/tmp/new)delimiter(')>operator(;) -operator(()local_variable($oh) operator(=) ident(fopen)operator(()local_variable($oldfile)operator(,) delimiter(')string(rb)delimiter(')operator(\))operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Problem opening input file )operator({)local_variable($oldfile)operator(})char(\\n)delimiter(")operator(\))operator(;) -operator(()local_variable($nh) operator(=) ident(fopen)operator(()local_variable($newfile)operator(,) delimiter(')string(wb)delimiter(')operator(\))operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Problem opening output file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")operator(\))operator(;) +operator(()local_variable($oh) operator(=) predefined(fopen)operator(()local_variable($oldfile)operator(,) string<delimiter(')content(rb)delimiter(')>operator(\))operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Problem opening input file )operator({)local_variable($oldfile)operator(})char(\\n)delimiter(")>operator(\))operator(;) +operator(()local_variable($nh) operator(=) predefined(fopen)operator(()local_variable($newfile)operator(,) string<delimiter(')content(wb)delimiter(')>operator(\))operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Problem opening output file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")>operator(\))operator(;) -reserved(if) operator(()operator(()local_variable($filesize) operator(=) ident(filesize)operator(()local_variable($oldfile)operator(\))operator(\)) operator(>) integer(0)operator(\)) +reserved(if) operator(()operator(()local_variable($filesize) operator(=) predefined(filesize)operator(()local_variable($oldfile)operator(\))operator(\)) operator(>) integer(0)operator(\)) operator({) - ident(fwrite)operator(()local_variable($nh)operator(,) ident(fread)operator(()local_variable($oh)operator(,) local_variable($filesize)operator(\))operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Problem reading / writing file data)char(\\n)delimiter(")operator(\))operator(;) + predefined(fwrite)operator(()local_variable($nh)operator(,) predefined(fread)operator(()local_variable($oh)operator(,) local_variable($filesize)operator(\))operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Problem reading / writing file data)char(\\n)delimiter(")>operator(\))operator(;) operator(}) -ident(fclose)operator(()local_variable($oh)operator(\))operator(;) -ident(fclose)operator(()local_variable($nh)operator(\))operator(;) +predefined(fclose)operator(()local_variable($oh)operator(\))operator(;) +predefined(fclose)operator(()local_variable($nh)operator(\))operator(;) comment(// ----------------------------) @@ -3249,13 +3249,13 @@ comment(// a simple matter to call a system command utility via, 'exec') comment(// *NIX-specific example. Could check whether, 'exec', succeeded, but checking whether) comment(// a file exists after the operation might be a better approach) -local_variable($oldfile) operator(=) delimiter(')string(/tmp/old)delimiter(')operator(;) local_variable($newfile) operator(=) delimiter(')string(/tmp/new)delimiter(')operator(;) +local_variable($oldfile) operator(=) string<delimiter(')content(/tmp/old)delimiter(')>operator(;) local_variable($newfile) operator(=) string<delimiter(')content(/tmp/new)delimiter(')>operator(;) -ident(is_file)operator(()local_variable($newfile)operator(\)) operator(&)operator(&) ident(unlink)operator(()local_variable($newfile)operator(\))operator(;) +predefined(is_file)operator(()local_variable($newfile)operator(\)) operator(&)operator(&) predefined(unlink)operator(()local_variable($newfile)operator(\))operator(;) -ident(exec)operator(()ident(trim)operator(()delimiter(')string(cp --force )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($oldfile)operator(\)) operator(.) delimiter(')string( )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($newfile)operator(\))operator(\))operator(\))operator(;) +predefined(exec)operator(()predefined(trim)operator(()string<delimiter(')content(cp --force )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($oldfile)operator(\)) operator(.) string<delimiter(')content( )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($newfile)operator(\))operator(\))operator(\))operator(;) -ident(is_file)operator(()local_variable($newfile)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Problem copying file )operator({)local_variable($oldfile)operator(})string( to file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")operator(\))operator(;) +predefined(is_file)operator(()local_variable($newfile)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Problem copying file )operator({)local_variable($oldfile)operator(})content( to file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")>operator(\))operator(;) comment(// For other operating systems just change:) comment(// * filenames) @@ -3263,24 +3263,24 @@ comment(// * command being 'exec'ed) comment(// as the rest of the code is platform independant) comment(// @@PLEAC@@_9.4) -pre_type(function) ident(makeDevInodePair)operator(()local_variable($filename)operator(\)) +reserved(function) ident(makeDevInodePair)operator(()local_variable($filename)operator(\)) operator({) - reserved(if) operator(()operator(!)operator(()local_variable($fs) operator(=) operator(@)ident(stat)operator(()local_variable($filename)operator(\))operator(\))operator(\)) reserved(return) constant(FALSE)operator(;) - reserved(return) ident(strval)operator(()local_variable($fs)operator([)delimiter(')string(dev)delimiter(')operator(]) operator(.) local_variable($fs)operator([)delimiter(')string(ino)delimiter(')operator(])operator(\))operator(;) + reserved(if) operator(()operator(!)operator(()local_variable($fs) operator(=) operator(@)predefined(stat)operator(()local_variable($filename)operator(\))operator(\))operator(\)) predefined(return) reserved(FALSE)operator(;) + predefined(return) predefined(strval)operator(()local_variable($fs)operator([)string<delimiter(')content(dev)delimiter(')>operator(]) operator(.) local_variable($fs)operator([)string<delimiter(')content(ino)delimiter(')>operator(])operator(\))operator(;) operator(}) comment(// ------------) -pre_type(function) ident(do_my_thing)operator(()local_variable($filename)operator(\)) +reserved(function) ident(do_my_thing)operator(()local_variable($filename)operator(\)) operator({) comment(// Using a global variable to mimic Perl example, but could easily have passed) comment(// '$seen' as an argument) - pre_type(global) local_variable($seen)operator(;) + reserved(global) local_variable($seen)operator(;) local_variable($devino) operator(=) ident(makeDevInodePair)operator(()local_variable($filename)operator(\))operator(;) comment(// Process $filename if it has not previously been seen, else just increment) - reserved(if) operator(()operator(!)pre_type(isset)operator(()local_variable($seen)operator([)local_variable($devino)operator(])operator(\))operator(\)) + reserved(if) operator(()operator(!)predefined(isset)operator(()local_variable($seen)operator([)local_variable($devino)operator(])operator(\))operator(\)) operator({) comment(// ... process $filename ...) @@ -3297,16 +3297,16 @@ operator(}) comment(// ----) comment(// Simple example) -local_variable($seen) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($seen) operator(=) predefined(array)operator(()operator(\))operator(;) -ident(do_my_thing)operator(()delimiter(')string(/tmp/old)delimiter(')operator(\))operator(;) -ident(do_my_thing)operator(()delimiter(')string(/tmp/old)delimiter(')operator(\))operator(;) -ident(do_my_thing)operator(()delimiter(')string(/tmp/old)delimiter(')operator(\))operator(;) -ident(do_my_thing)operator(()delimiter(')string(/tmp/new)delimiter(')operator(\))operator(;) +ident(do_my_thing)operator(()string<delimiter(')content(/tmp/old)delimiter(')>operator(\))operator(;) +ident(do_my_thing)operator(()string<delimiter(')content(/tmp/old)delimiter(')>operator(\))operator(;) +ident(do_my_thing)operator(()string<delimiter(')content(/tmp/old)delimiter(')>operator(\))operator(;) +ident(do_my_thing)operator(()string<delimiter(')content(/tmp/new)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($seen) reserved(as) local_variable($devino) operator(=>) local_variable($count)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($devino)operator(})string( -> )operator({)local_variable($count)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($devino)operator(})content( -> )operator({)local_variable($count)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) @@ -3316,15 +3316,15 @@ comment(// easily-implemented 'higher order' techniques) comment(// Helper function loosely modelled on, 'array_reduce', but using an array as) comment(// 'accumulator', which is returned on completion) -pre_type(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) +reserved(function) ident(array_update)operator(()local_variable($arr)operator(,) local_variable($lambda)operator(,) local_variable($updarr)operator(\)) operator({) reserved(foreach)operator(()local_variable($arr) reserved(as) local_variable($key)operator(\)) local_variable($lambda)operator(()local_variable($updarr)operator(,) local_variable($key)operator(\))operator(;) - reserved(return) local_variable($updarr)operator(;) + predefined(return) local_variable($updarr)operator(;) operator(}) -pre_type(function) ident(do_my_thing)operator(()operator(&)local_variable($seen)operator(,) local_variable($filename)operator(\)) +reserved(function) ident(do_my_thing)operator(()operator(&)local_variable($seen)operator(,) local_variable($filename)operator(\)) operator({) - reserved(if) operator(()operator(!)ident(array_key_exists)operator(()operator(()local_variable($devino) operator(=) ident(makeDevInodePair)operator(()local_variable($filename)operator(\))operator(\))operator(,) local_variable($seen)operator(\))operator(\)) + reserved(if) operator(()operator(!)predefined(array_key_exists)operator(()operator(()local_variable($devino) operator(=) ident(makeDevInodePair)operator(()local_variable($filename)operator(\))operator(\))operator(,) local_variable($seen)operator(\))operator(\)) operator({) comment(// ... processing $filename ...) @@ -3341,72 +3341,72 @@ operator(}) comment(// ----) comment(// Simple example) -local_variable($files) operator(=) pre_type(array)operator(()delimiter(')string(/tmp/old)delimiter(')operator(,) delimiter(')string(/tmp/old)delimiter(')operator(,) delimiter(')string(/tmp/old)delimiter(')operator(,) delimiter(')string(/tmp/new)delimiter(')operator(\))operator(;) +local_variable($files) operator(=) predefined(array)operator(()string<delimiter(')content(/tmp/old)delimiter(')>operator(,) string<delimiter(')content(/tmp/old)delimiter(')>operator(,) string<delimiter(')content(/tmp/old)delimiter(')>operator(,) string<delimiter(')content(/tmp/new)delimiter(')>operator(\))operator(;) comment(// Could do this ...) -local_variable($seen) operator(=) pre_type(array)operator(()operator(\))operator(;) -ident(array_update)operator(()local_variable($files)operator(,) delimiter(')string(do_my_thing)delimiter(')operator(,) operator(&)local_variable($seen)operator(\))operator(;) +local_variable($seen) operator(=) predefined(array)operator(()operator(\))operator(;) +ident(array_update)operator(()local_variable($files)operator(,) string<delimiter(')content(do_my_thing)delimiter(')>operator(,) operator(&)local_variable($seen)operator(\))operator(;) comment(// or this:) -local_variable($seen) operator(=) ident(array_update)operator(()local_variable($files)operator(,) delimiter(')string(do_my_thing)delimiter(')operator(,) pre_type(array)operator(()operator(\))operator(\))operator(;) +local_variable($seen) operator(=) ident(array_update)operator(()local_variable($files)operator(,) string<delimiter(')content(do_my_thing)delimiter(')>operator(,) predefined(array)operator(()operator(\))operator(\))operator(;) comment(// or a 'lambda' could be used:) ident(array_update)operator(()local_variable($files)operator(,) - ident(create_function)operator(()delimiter(')string($seen, $filename)delimiter(')operator(,) delimiter(')string(... code not shown ...)delimiter(')operator(\))operator(,) + ident(create_function)operator(()string<delimiter(')content($seen, $filename)delimiter(')>operator(,) string<delimiter(')content(... code not shown ...)delimiter(')>operator(\))operator(,) operator(&)local_variable($seen)operator(\))operator(;) reserved(foreach)operator(()local_variable($seen) reserved(as) local_variable($devino) operator(=>) local_variable($count)operator(\)) operator({) - pre_type(echo) delimiter(")operator({)local_variable($devino)operator(})string( -> )operator({)local_variable($count)operator(})char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")operator({)local_variable($devino)operator(})content( -> )operator({)local_variable($count)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// ----------------------------) -local_variable($files) operator(=) ident(glob)operator(()delimiter(')string(/tmp/*)delimiter(')operator(\))operator(;) +local_variable($files) operator(=) predefined(glob)operator(()string<delimiter(')content(/tmp/*)delimiter(')>operator(\))operator(;) -ident(define)operator(()constant(SEP)operator(,) delimiter(')string(;)delimiter(')operator(\))operator(;) -local_variable($seen) operator(=) pre_type(array)operator(()operator(\))operator(;) +predefined(define)operator(()constant(SEP)operator(,) string<delimiter(')content(;)delimiter(')>operator(\))operator(;) +local_variable($seen) operator(=) predefined(array)operator(()operator(\))operator(;) reserved(foreach)operator(()local_variable($files) reserved(as) local_variable($filename)operator(\)) operator({) - reserved(if) operator(()operator(!)ident(array_key_exists)operator(()operator(()local_variable($devino) operator(=) ident(makeDevInodePair)operator(()local_variable($filename)operator(\))operator(\))operator(,) local_variable($seen)operator(\))operator(\)) + reserved(if) operator(()operator(!)predefined(array_key_exists)operator(()operator(()local_variable($devino) operator(=) ident(makeDevInodePair)operator(()local_variable($filename)operator(\))operator(\))operator(,) local_variable($seen)operator(\))operator(\)) local_variable($seen)operator([)local_variable($devino)operator(]) operator(=) local_variable($filename)operator(;) reserved(else) local_variable($seen)operator([)local_variable($devino)operator(]) operator(=) local_variable($seen)operator([)local_variable($devino)operator(]) operator(.) constant(SEP) operator(.) local_variable($filename)operator(;) operator(}) -local_variable($devino) operator(=) ident(array_keys)operator(()local_variable($seen)operator(\))operator(;) -ident(sort)operator(()local_variable($devino)operator(\))operator(;) +local_variable($devino) operator(=) predefined(array_keys)operator(()local_variable($seen)operator(\))operator(;) +predefined(sort)operator(()local_variable($devino)operator(\))operator(;) reserved(foreach)operator(()local_variable($devino) reserved(as) local_variable($key)operator(\)) operator({) - pre_type(echo) local_variable($key) operator(.) delimiter(')string(:)delimiter(')operator(;) - reserved(foreach)operator(()ident(split)operator(()constant(SEP)operator(,) local_variable($seen)operator([)local_variable($key)operator(])operator(\)) reserved(as) local_variable($filename)operator(\)) pre_type(echo) delimiter(')string( )delimiter(') operator(.) local_variable($filename)operator(;) - pre_type(echo) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) local_variable($key) operator(.) string<delimiter(')content(:)delimiter(')>operator(;) + reserved(foreach)operator(()predefined(split)operator(()constant(SEP)operator(,) local_variable($seen)operator([)local_variable($key)operator(])operator(\)) reserved(as) local_variable($filename)operator(\)) predefined(echo) string<delimiter(')content( )delimiter(')> operator(.) local_variable($filename)operator(;) + predefined(echo) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_9.5) comment(// Conventional POSIX-like approach to directory traversal) -local_variable($dirname) operator(=) delimiter(')string(/usr/bin/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/usr/bin/)delimiter(')>operator(;) -operator(()local_variable($dirhdl) operator(=) ident(opendir)operator(()local_variable($dirname)operator(\))operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Couldn't open )operator({)local_variable($dirname)operator(})char(\\n)delimiter(")operator(\))operator(;) +operator(()local_variable($dirhdl) operator(=) predefined(opendir)operator(()local_variable($dirname)operator(\))operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Couldn't open )operator({)local_variable($dirname)operator(})char(\\n)delimiter(")>operator(\))operator(;) -reserved(while) operator(()operator(()local_variable($file) operator(=) ident(readdir)operator(()local_variable($dirhdl)operator(\))operator(\)) operator(!==) constant(FALSE)operator(\)) +reserved(while) operator(()operator(()local_variable($file) operator(=) predefined(readdir)operator(()local_variable($dirhdl)operator(\))operator(\)) operator(!==) reserved(FALSE)operator(\)) operator({) operator(;) comment(// ... do something with $dirname/$file) comment(// ...) operator(}) -ident(closedir)operator(()local_variable($dirhdl)operator(\))operator(;) +predefined(closedir)operator(()local_variable($dirhdl)operator(\))operator(;) comment(// ------------) comment(// Newer [post PHP 4], 'applicative' approach - an array of filenames is) comment(// generated that may be processed via external loop ...) -local_variable($dirname) operator(=) delimiter(')string(/usr/bin/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/usr/bin/)delimiter(')>operator(;) -reserved(foreach)operator(()ident(scandir)operator(()local_variable($dirname)operator(\)) reserved(as) local_variable($file)operator(\)) +reserved(foreach)operator(()predefined(scandir)operator(()local_variable($dirname)operator(\)) reserved(as) local_variable($file)operator(\)) operator({) operator(;) comment(// ... do something with $dirname/$file) comment(// ...) @@ -3415,15 +3415,15 @@ operator(}) comment(// .. or, via callback application, perhaps after massaging by one of the) comment(// 'array' family of functions [also uses, 'array_update', from earlier section]) -local_variable($newlist) operator(=) ident(array_update)operator(()ident(array_reverse)operator(()ident(scandir)operator(()local_variable($dirname)operator(\))operator(\))operator(,) - ident(create_function)operator(()delimiter(')string($filelist, $file)delimiter(')operator(,) delimiter(')string( ; )delimiter(')operator(\))operator(,) - pre_type(array)operator(()operator(\))operator(\))operator(;) +local_variable($newlist) operator(=) ident(array_update)operator(()predefined(array_reverse)operator(()predefined(scandir)operator(()local_variable($dirname)operator(\))operator(\))operator(,) + ident(create_function)operator(()string<delimiter(')content($filelist, $file)delimiter(')>operator(,) string<delimiter(')content( ; )delimiter(')>operator(\))operator(,) + predefined(array)operator(()operator(\))operator(\))operator(;) comment(// And don't forget that the old standby, 'glob', that returns an array of) comment(// paths filtered using the Bourne Shell-based wildcards, '?' and '*', is) comment(// also available) -reserved(foreach)operator(()ident(glob)operator(()local_variable($dirname) operator(.) delimiter(')string(*)delimiter(')operator(\)) reserved(as) local_variable($path)operator(\)) +reserved(foreach)operator(()predefined(glob)operator(()local_variable($dirname) operator(.) string<delimiter(')content(*)delimiter(')>operator(\)) reserved(as) local_variable($path)operator(\)) operator({) operator(;) comment(// ... do something with $path) comment(// ...) @@ -3432,26 +3432,26 @@ operator(}) comment(// ----------------------------) comment(// Uses, 'isTextFile', from an earlier section) -local_variable($dirname) operator(=) delimiter(')string(/usr/bin/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/usr/bin/)delimiter(')>operator(;) -pre_type(echo) delimiter(")string(Text files in )operator({)local_variable($dirname)operator(})string(:)char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(Text files in )operator({)local_variable($dirname)operator(})content(:)char(\\n)delimiter(")>operator(;) -reserved(foreach)operator(()ident(scandir)operator(()local_variable($dirname)operator(\)) reserved(as) local_variable($file)operator(\)) +reserved(foreach)operator(()predefined(scandir)operator(()local_variable($dirname)operator(\)) reserved(as) local_variable($file)operator(\)) operator({) comment(// Take care when constructing paths to ensure cross-platform operability ) local_variable($path) operator(=) local_variable($dirname) operator(.) local_variable($file)operator(;) - reserved(if) operator(()ident(is_file)operator(()local_variable($path)operator(\)) operator(&)operator(&) ident(isTextFile)operator(()local_variable($path)operator(\))operator(\)) pre_type(echo) local_variable($path) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + reserved(if) operator(()predefined(is_file)operator(()local_variable($path)operator(\)) operator(&)operator(&) ident(isTextFile)operator(()local_variable($path)operator(\))operator(\)) predefined(echo) local_variable($path) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// ----------------------------) -pre_type(function) ident(plain_files)operator(()local_variable($dirname)operator(\)) +reserved(function) ident(plain_files)operator(()local_variable($dirname)operator(\)) operator({) - operator(()local_variable($dirlist) operator(=) ident(glob)operator(()local_variable($dirname) operator(.) delimiter(')string(*)delimiter(')operator(\))operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Couldn't glob )operator({)local_variable($dirname)operator(})char(\\n)delimiter(")operator(\))operator(;) + operator(()local_variable($dirlist) operator(=) predefined(glob)operator(()local_variable($dirname) operator(.) string<delimiter(')content(*)delimiter(')>operator(\))operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Couldn't glob )operator({)local_variable($dirname)operator(})char(\\n)delimiter(")>operator(\))operator(;) comment(// Pass function name directly if only a single function performs filter test) - reserved(return) ident(array_filter)operator(()local_variable($dirlist)operator(,) delimiter(')string(is_file)delimiter(')operator(\))operator(;) + predefined(return) predefined(array_filter)operator(()local_variable($dirlist)operator(,) string<delimiter(')content(is_file)delimiter(')>operator(\))operator(;) comment(// Use, 'create_function', if a multi-function test is needed) comment(//) @@ -3461,59 +3461,59 @@ operator(}) comment(// ------------) -reserved(foreach)operator(()ident(plain_files)operator(()delimiter(')string(/tmp/)delimiter(')operator(\)) reserved(as) local_variable($path)operator(\)) +reserved(foreach)operator(()ident(plain_files)operator(()string<delimiter(')content(/tmp/)delimiter(')>operator(\)) reserved(as) local_variable($path)operator(\)) operator({) - pre_type(echo) local_variable($path) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) local_variable($path) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_9.6) -local_variable($dirname) operator(=) delimiter(')string(/tmp/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/tmp/)delimiter(')>operator(;) comment(// Full paths) -local_variable($pathlist) operator(=) ident(glob)operator(()local_variable($dirname) operator(.) delimiter(')string(*.c)delimiter(')operator(\))operator(;) +local_variable($pathlist) operator(=) predefined(glob)operator(()local_variable($dirname) operator(.) string<delimiter(')content(*.c)delimiter(')>operator(\))operator(;) comment(// File names only - glob-based matching) -local_variable($filelist) operator(=) ident(array_filter)operator(()ident(scandir)operator(()local_variable($dirname)operator(\))operator(,) - ident(create_function)operator(()delimiter(')string($file)delimiter(')operator(,) delimiter(')string(return fnmatch("*.c", $file\);)delimiter(')operator(\))operator(\))operator(;) +local_variable($filelist) operator(=) predefined(array_filter)operator(()predefined(scandir)operator(()local_variable($dirname)operator(\))operator(,) + ident(create_function)operator(()string<delimiter(')content($file)delimiter(')>operator(,) string<delimiter(')content(return fnmatch("*.c", $file\);)delimiter(')>operator(\))operator(\))operator(;) comment(// ----------------------------) -local_variable($dirname) operator(=) delimiter(')string(/tmp/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/tmp/)delimiter(')>operator(;) comment(// File names only - regex-based matching [case-insensitive]) -local_variable($filelist) operator(=) ident(array_filter)operator(()ident(scandir)operator(()local_variable($dirname)operator(\))operator(,) - ident(create_function)operator(()delimiter(')string($file)delimiter(')operator(,) delimiter(')string(return eregi(")string(\\)string(.[ch]$", $file\);)delimiter(')operator(\))operator(\))operator(;) +local_variable($filelist) operator(=) predefined(array_filter)operator(()predefined(scandir)operator(()local_variable($dirname)operator(\))operator(,) + ident(create_function)operator(()string<delimiter(')content($file)delimiter(')>operator(,) string<delimiter(')content(return eregi(")content(\\.)content([ch]$", $file\);)delimiter(')>operator(\))operator(\))operator(;) comment(// ----------------------------) -local_variable($dirname) operator(=) delimiter(')string(/tmp/)delimiter(')operator(;) +local_variable($dirname) operator(=) string<delimiter(')content(/tmp/)delimiter(')>operator(;) comment(// Directory names - all-digit names) -local_variable($dirs) operator(=) ident(array_filter)operator(()ident(glob)operator(()local_variable($dirname) operator(.) delimiter(')string(*)delimiter(')operator(,) constant(GLOB_ONLYDIR)operator(\))operator(,) - ident(create_function)operator(()delimiter(')string($path)delimiter(')operator(,) delimiter(')string(return ereg("^[0-9]+$", basename($path\)\);)delimiter(')operator(\))operator(\))operator(;) +local_variable($dirs) operator(=) predefined(array_filter)operator(()predefined(glob)operator(()local_variable($dirname) operator(.) string<delimiter(')content(*)delimiter(')>operator(,) constant(GLOB_ONLYDIR)operator(\))operator(,) + ident(create_function)operator(()string<delimiter(')content($path)delimiter(')>operator(,) string<delimiter(')content(return ereg("^[0-9]+$", basename($path\)\);)delimiter(')>operator(\))operator(\))operator(;) comment(// @@PLEAC@@_9.7) comment(// Recursive directory traversal function and helper: traverses a directory tree) comment(// applying a function [and a variable number of accompanying arguments] to each) comment(// file) -pre_type(class) constant(Accumulator) +reserved(class) constant(Accumulator) operator({) - pre_type(public) local_variable($value)operator(;) - pre_type(public) pre_type(function) ident(__construct)operator(()local_variable($start_value)operator(\)) operator({) local_variable($this)operator(->)ident(value) operator(=) local_variable($start_value)operator(;) operator(}) + reserved(public) local_variable($value)operator(;) + reserved(public) reserved(function) ident(__construct)operator(()local_variable($start_value)operator(\)) operator({) local_variable($this)operator(->)ident(value) operator(=) local_variable($start_value)operator(;) operator(}) operator(}) comment(// ------------) -pre_type(function) ident(process_directory_)operator(()local_variable($op)operator(,) local_variable($func_args)operator(\)) +reserved(function) ident(process_directory_)operator(()local_variable($op)operator(,) local_variable($func_args)operator(\)) operator({) - reserved(if) operator(()ident(is_dir)operator(()local_variable($func_args)operator([)integer(0)operator(])operator(\))operator(\)) + reserved(if) operator(()predefined(is_dir)operator(()local_variable($func_args)operator([)integer(0)operator(])operator(\))operator(\)) operator({) local_variable($current) operator(=) local_variable($func_args)operator([)integer(0)operator(])operator(;) - reserved(foreach)operator(()ident(scandir)operator(()local_variable($current)operator(\)) reserved(as) local_variable($entry)operator(\)) + reserved(foreach)operator(()predefined(scandir)operator(()local_variable($current)operator(\)) reserved(as) local_variable($entry)operator(\)) operator({) - reserved(if) operator(()local_variable($entry) operator(==) delimiter(')string(.)delimiter(') operator(|)operator(|) local_variable($entry) operator(==) delimiter(')string(..)delimiter(')operator(\)) reserved(continue)operator(;) - local_variable($func_args)operator([)integer(0)operator(]) operator(=) local_variable($current) operator(.) delimiter(')string(/)delimiter(') operator(.) local_variable($entry)operator(;) + reserved(if) operator(()local_variable($entry) operator(==) string<delimiter(')content(.)delimiter(')> operator(|)operator(|) local_variable($entry) operator(==) string<delimiter(')content(..)delimiter(')>operator(\)) reserved(continue)operator(;) + local_variable($func_args)operator([)integer(0)operator(]) operator(=) local_variable($current) operator(.) string<delimiter(')content(/)delimiter(')> operator(.) local_variable($entry)operator(;) ident(process_directory_)operator(()local_variable($op)operator(,) local_variable($func_args)operator(\))operator(;) operator(}) operator(}) @@ -3523,17 +3523,17 @@ operator({) operator(}) operator(}) -pre_type(function) ident(process_directory)operator(()local_variable($op)operator(,) local_variable($dir)operator(\)) +reserved(function) ident(process_directory)operator(()local_variable($op)operator(,) local_variable($dir)operator(\)) operator({) - reserved(if) operator(()operator(!)ident(is_dir)operator(()local_variable($dir)operator(\))operator(\)) reserved(return) constant(FALSE)operator(;) - local_variable($func_args) operator(=) ident(array_slice)operator(()ident(func_get_args)operator(()operator(\))operator(,) integer(1)operator(\))operator(;) + reserved(if) operator(()operator(!)predefined(is_dir)operator(()local_variable($dir)operator(\))operator(\)) predefined(return) reserved(FALSE)operator(;) + local_variable($func_args) operator(=) predefined(array_slice)operator(()predefined(func_get_args)operator(()operator(\))operator(,) integer(1)operator(\))operator(;) ident(process_directory_)operator(()local_variable($op)operator(,) local_variable($func_args)operator(\))operator(;) - reserved(return) constant(TRUE)operator(;) + predefined(return) reserved(TRUE)operator(;) operator(}) comment(// ----------------------------) -local_variable($dirlist) operator(=) pre_type(array)operator(()delimiter(')string(/tmp/d1)delimiter(')operator(,) delimiter(')string(/tmp/d2)delimiter(')operator(,) delimiter(')string(/tmp/d3)delimiter(')operator(\))operator(;) +local_variable($dirlist) operator(=) predefined(array)operator(()string<delimiter(')content(/tmp/d1)delimiter(')>operator(,) string<delimiter(')content(/tmp/d2)delimiter(')>operator(,) string<delimiter(')content(/tmp/d3)delimiter(')>operator(\))operator(;) comment(// Do something with each directory in the list) reserved(foreach)operator(()local_variable($dirlist) reserved(as) local_variable($dir)operator(\)) @@ -3547,66 +3547,66 @@ operator(}) comment(// ------------) -local_variable($dirlist) operator(=) pre_type(array)operator(()delimiter(')string(/tmp/d1)delimiter(')operator(,) delimiter(')string(/tmp/d2)delimiter(')operator(,) delimiter(')string(/tmp/d3)delimiter(')operator(\))operator(;) +local_variable($dirlist) operator(=) predefined(array)operator(()string<delimiter(')content(/tmp/d1)delimiter(')>operator(,) string<delimiter(')content(/tmp/d2)delimiter(')>operator(,) string<delimiter(')content(/tmp/d3)delimiter(')>operator(\))operator(;) -pre_type(function) ident(pf)operator(()local_variable($path)operator(\)) +reserved(function) ident(pf)operator(()local_variable($path)operator(\)) operator({) comment(// ... do something to the file or directory ...) - ident(printf)operator(()delimiter(")string(%s)char(\\n)delimiter(")operator(,) local_variable($path)operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(%s)char(\\n)delimiter(")>operator(,) local_variable($path)operator(\))operator(;) operator(}) comment(// For each directory in the list ...) reserved(foreach)operator(()local_variable($dirlist) reserved(as) local_variable($dir)operator(\)) operator({) comment(// Is this a valid directory ?) - reserved(if) operator(()operator(!)ident(is_dir)operator(()local_variable($dir)operator(\))operator(\)) operator({) ident(printf)operator(()delimiter(")string(%s does not exist)char(\\n)delimiter(")operator(,) local_variable($dir)operator(\))operator(;) reserved(continue)operator(;) operator(}) + reserved(if) operator(()operator(!)predefined(is_dir)operator(()local_variable($dir)operator(\))operator(\)) operator({) predefined(printf)operator(()string<delimiter(")content(%s does not exist)char(\\n)delimiter(")>operator(,) local_variable($dir)operator(\))operator(;) reserved(continue)operator(;) operator(}) comment(// Ok, so get all the directory's entries) - local_variable($filelist) operator(=) ident(scandir)operator(()local_variable($dir)operator(\))operator(;) + local_variable($filelist) operator(=) predefined(scandir)operator(()local_variable($dir)operator(\))operator(;) comment(// An 'empty' directory will contain at least two entries: '..' and '.') - reserved(if) operator(()ident(count)operator(()local_variable($filelist)operator(\)) operator(==) integer(2)operator(\)) operator({) ident(printf)operator(()delimiter(")string(%s is empty)char(\\n)delimiter(")operator(,) local_variable($dir)operator(\))operator(;) reserved(continue)operator(;) operator(}) + reserved(if) operator(()predefined(count)operator(()local_variable($filelist)operator(\)) operator(==) integer(2)operator(\)) operator({) predefined(printf)operator(()string<delimiter(")content(%s is empty)char(\\n)delimiter(")>operator(,) local_variable($dir)operator(\))operator(;) reserved(continue)operator(;) operator(}) comment(// For each file / directory in the directory ...) reserved(foreach)operator(()local_variable($filelist) reserved(as) local_variable($file)operator(\)) operator({) comment(// Ignore '..' and '.' entries) - reserved(if) operator(()local_variable($file) operator(==) delimiter(')string(.)delimiter(') operator(|)operator(|) local_variable($file) operator(==) delimiter(')string(..)delimiter(')operator(\)) reserved(continue)operator(;) + reserved(if) operator(()local_variable($file) operator(==) string<delimiter(')content(.)delimiter(')> operator(|)operator(|) local_variable($file) operator(==) string<delimiter(')content(..)delimiter(')>operator(\)) reserved(continue)operator(;) comment(// Apply function to process the file / directory) - ident(pf)operator(()local_variable($dir) operator(.) delimiter(')string(/)delimiter(') operator(.) local_variable($file)operator(\))operator(;) + ident(pf)operator(()local_variable($dir) operator(.) string<delimiter(')content(/)delimiter(')> operator(.) local_variable($file)operator(\))operator(;) operator(}) operator(}) comment(// ----------------------------) -pre_type(function) ident(accum_filesize)operator(()local_variable($file)operator(,) local_variable($accum)operator(\)) +reserved(function) ident(accum_filesize)operator(()local_variable($file)operator(,) local_variable($accum)operator(\)) operator({) - ident(is_file)operator(()local_variable($file)operator(\)) operator(&)operator(&) operator(()local_variable($accum)operator(->)ident(value) operator(+)operator(=) ident(filesize)operator(()local_variable($file)operator(\))operator(\))operator(;) + predefined(is_file)operator(()local_variable($file)operator(\)) operator(&)operator(&) operator(()local_variable($accum)operator(->)ident(value) operator(+)operator(=) predefined(filesize)operator(()local_variable($file)operator(\))operator(\))operator(;) operator(}) comment(// ------------) comment(// Verify arguments ...) -local_variable($argc) operator(==) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})string( dir)char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(==) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})content( dir)char(\\n)delimiter(")>operator(\))operator(;) local_variable($dir) operator(=) local_variable($argv)operator([)integer(1)operator(])operator(;) -ident(is_dir)operator(()local_variable($dir)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")operator({)local_variable($dir)operator(})string( does not exist / not a directory)char(\\n)delimiter(")operator(\))operator(;) +predefined(is_dir)operator(()local_variable($dir)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")operator({)local_variable($dir)operator(})content( does not exist / not a directory)char(\\n)delimiter(")>operator(\))operator(;) comment(// Collect data [use an object to accumulate results]) -local_variable($dirsize) operator(=) pre_type(new) constant(Accumulator)operator(()integer(0)operator(\))operator(;) -ident(process_directory)operator(()delimiter(')string(accum_filesize)delimiter(')operator(,) local_variable($dir)operator(,) local_variable($dirsize)operator(\))operator(;) +local_variable($dirsize) operator(=) reserved(new) constant(Accumulator)operator(()integer(0)operator(\))operator(;) +ident(process_directory)operator(()string<delimiter(')content(accum_filesize)delimiter(')>operator(,) local_variable($dir)operator(,) local_variable($dirsize)operator(\))operator(;) comment(// Report results) -ident(printf)operator(()delimiter(")string(%s contains %d bytes)char(\\n)delimiter(")operator(,) local_variable($dir)operator(,) local_variable($dirsize)operator(->)ident(value)operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(%s contains %d bytes)char(\\n)delimiter(")>operator(,) local_variable($dir)operator(,) local_variable($dirsize)operator(->)ident(value)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(biggest_file)operator(()local_variable($file)operator(,) local_variable($accum)operator(\)) +reserved(function) ident(biggest_file)operator(()local_variable($file)operator(,) local_variable($accum)operator(\)) operator({) - reserved(if) operator(()ident(is_file)operator(()local_variable($file)operator(\))operator(\)) + reserved(if) operator(()predefined(is_file)operator(()local_variable($file)operator(\))operator(\)) operator({) - local_variable($fs) operator(=) ident(filesize)operator(()local_variable($file)operator(\))operator(;) + local_variable($fs) operator(=) predefined(filesize)operator(()local_variable($file)operator(\))operator(;) reserved(if) operator(()local_variable($accum)operator(->)ident(value)operator([)integer(1)operator(]) operator(<) local_variable($fs)operator(\)) operator({) local_variable($accum)operator(->)ident(value)operator([)integer(0)operator(]) operator(=) local_variable($file)operator(;) local_variable($accum)operator(->)ident(value)operator([)integer(1)operator(]) operator(=) local_variable($fs)operator(;) operator(}) operator(}) operator(}) @@ -3614,25 +3614,25 @@ operator(}) comment(// ------------) comment(// Verify arguments ...) -local_variable($argc) operator(==) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})string( dir)char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(==) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})content( dir)char(\\n)delimiter(")>operator(\))operator(;) local_variable($dir) operator(=) local_variable($argv)operator([)integer(1)operator(])operator(;) -ident(is_dir)operator(()local_variable($dir)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")operator({)local_variable($dir)operator(})string( does not exist / not a directory)char(\\n)delimiter(")operator(\))operator(;) +predefined(is_dir)operator(()local_variable($dir)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")operator({)local_variable($dir)operator(})content( does not exist / not a directory)char(\\n)delimiter(")>operator(\))operator(;) comment(// Collect data [use an object to accumulate results]) -local_variable($biggest) operator(=) pre_type(new) constant(Accumulator)operator(()pre_type(array)operator(()delimiter(')delimiter(')operator(,) integer(0)operator(\))operator(\))operator(;) -ident(process_directory)operator(()delimiter(')string(biggest_file)delimiter(')operator(,) local_variable($dir)operator(,) local_variable($biggest)operator(\))operator(;) +local_variable($biggest) operator(=) reserved(new) constant(Accumulator)operator(()predefined(array)operator(()string<delimiter(')delimiter(')>operator(,) integer(0)operator(\))operator(\))operator(;) +ident(process_directory)operator(()string<delimiter(')content(biggest_file)delimiter(')>operator(,) local_variable($dir)operator(,) local_variable($biggest)operator(\))operator(;) comment(// Report results) -ident(printf)operator(()delimiter(")string(Biggest file is %s containing %d bytes)char(\\n)delimiter(")operator(,) local_variable($biggest)operator(->)ident(value)operator([)integer(0)operator(])operator(,) local_variable($biggest)operator(->)ident(value)operator([)integer(1)operator(])operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Biggest file is %s containing %d bytes)char(\\n)delimiter(")>operator(,) local_variable($biggest)operator(->)ident(value)operator([)integer(0)operator(])operator(,) local_variable($biggest)operator(->)ident(value)operator([)integer(1)operator(])operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(youngest_file)operator(()local_variable($file)operator(,) local_variable($accum)operator(\)) +reserved(function) ident(youngest_file)operator(()local_variable($file)operator(,) local_variable($accum)operator(\)) operator({) - reserved(if) operator(()ident(is_file)operator(()local_variable($file)operator(\))operator(\)) + reserved(if) operator(()predefined(is_file)operator(()local_variable($file)operator(\))operator(\)) operator({) - local_variable($fct) operator(=) ident(filectime)operator(()local_variable($file)operator(\))operator(;) + local_variable($fct) operator(=) predefined(filectime)operator(()local_variable($file)operator(\))operator(;) reserved(if) operator(()local_variable($accum)operator(->)ident(value)operator([)integer(1)operator(]) operator(>) local_variable($fct)operator(\)) operator({) local_variable($accum)operator(->)ident(value)operator([)integer(0)operator(]) operator(=) local_variable($file)operator(;) local_variable($accum)operator(->)ident(value)operator([)integer(1)operator(]) operator(=) local_variable($fct)operator(;) operator(}) operator(}) operator(}) @@ -3640,17 +3640,17 @@ operator(}) comment(// ------------) comment(// Verify arguments ...) -local_variable($argc) operator(==) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})string( dir)char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(==) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: )operator({)local_variable($argv)operator([)integer(0)operator(])operator(})content( dir)char(\\n)delimiter(")>operator(\))operator(;) local_variable($dir) operator(=) local_variable($argv)operator([)integer(1)operator(])operator(;) -ident(is_dir)operator(()local_variable($dir)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")operator({)local_variable($dir)operator(})string( does not exist / not a directory)char(\\n)delimiter(")operator(\))operator(;) +predefined(is_dir)operator(()local_variable($dir)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")operator({)local_variable($dir)operator(})content( does not exist / not a directory)char(\\n)delimiter(")>operator(\))operator(;) comment(// Collect data [use an object to accumulate results]) -local_variable($youngest) operator(=) pre_type(new) constant(Accumulator)operator(()pre_type(array)operator(()delimiter(')delimiter(')operator(,) integer(2147483647)operator(\))operator(\))operator(;) -ident(process_directory)operator(()delimiter(')string(youngest_file)delimiter(')operator(,) local_variable($dir)operator(,) local_variable($youngest)operator(\))operator(;) +local_variable($youngest) operator(=) reserved(new) constant(Accumulator)operator(()predefined(array)operator(()string<delimiter(')delimiter(')>operator(,) integer(2147483647)operator(\))operator(\))operator(;) +ident(process_directory)operator(()string<delimiter(')content(youngest_file)delimiter(')>operator(,) local_variable($dir)operator(,) local_variable($youngest)operator(\))operator(;) comment(// Report results) -ident(printf)operator(()delimiter(")string(Youngest file is %s dating %s)char(\\n)delimiter(")operator(,) local_variable($youngest)operator(->)ident(value)operator([)integer(0)operator(])operator(,) ident(date)operator(()constant(DATE_ATOM)operator(,) local_variable($youngest)operator(->)ident(value)operator([)integer(1)operator(])operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(Youngest file is %s dating %s)char(\\n)delimiter(")>operator(,) local_variable($youngest)operator(->)ident(value)operator([)integer(0)operator(])operator(,) predefined(date)operator(()constant(DATE_ATOM)operator(,) local_variable($youngest)operator(->)ident(value)operator([)integer(1)operator(])operator(\))operator(\))operator(;) comment(// @@PLEAC@@_9.8) comment(// AFAICT, there is currently no library function that recursively removes a) @@ -3672,51 +3672,51 @@ comment(// one of each approach; the example shown here is loosely based on one comment(// examples) comment(// Recursor - recursively traverses directory tree) -pre_type(function) ident(rmtree_)operator(()local_variable($dir)operator(\)) +reserved(function) ident(rmtree_)operator(()local_variable($dir)operator(\)) operator({) - local_variable($dir) operator(=) delimiter(")local_variable($dir)delimiter(")operator(;) + local_variable($dir) operator(=) string<delimiter(")local_variable($dir)delimiter(")>operator(;) - reserved(if) operator(()local_variable($dh) operator(=) ident(opendir)operator(()local_variable($dir)operator(\))operator(\)) + reserved(if) operator(()local_variable($dh) operator(=) predefined(opendir)operator(()local_variable($dir)operator(\))operator(\)) operator({) - reserved(while) operator(()constant(FALSE) operator(!==) operator(()local_variable($item) operator(=) ident(readdir)operator(()local_variable($dh)operator(\))operator(\))operator(\)) + reserved(while) operator(()reserved(FALSE) operator(!==) operator(()local_variable($item) operator(=) predefined(readdir)operator(()local_variable($dh)operator(\))operator(\))operator(\)) operator({) - reserved(if) operator(()local_variable($item) operator(!=) delimiter(')string(.)delimiter(') operator(&)operator(&) local_variable($item) operator(!=) delimiter(')string(..)delimiter(')operator(\)) + reserved(if) operator(()local_variable($item) operator(!=) string<delimiter(')content(.)delimiter(')> operator(&)operator(&) local_variable($item) operator(!=) string<delimiter(')content(..)delimiter(')>operator(\)) operator({) - local_variable($subdir) operator(=) local_variable($dir) operator(.) delimiter(')string(/)delimiter(') operator(.) delimiter(")local_variable($item)delimiter(")operator(;) + local_variable($subdir) operator(=) local_variable($dir) operator(.) string<delimiter(')content(/)delimiter(')> operator(.) string<delimiter(")local_variable($item)delimiter(")>operator(;) - reserved(if) operator(()ident(is_dir)operator(()local_variable($subdir)operator(\))operator(\)) ident(rmtree_)operator(()local_variable($subdir)operator(\))operator(;) - reserved(else) operator(@)ident(unlink)operator(()local_variable($subdir)operator(\))operator(;) + reserved(if) operator(()predefined(is_dir)operator(()local_variable($subdir)operator(\))operator(\)) ident(rmtree_)operator(()local_variable($subdir)operator(\))operator(;) + reserved(else) operator(@)predefined(unlink)operator(()local_variable($subdir)operator(\))operator(;) operator(}) operator(}) - ident(closedir)operator(()local_variable($dh)operator(\))operator(;) operator(@)ident(rmdir)operator(()local_variable($dir)operator(\))operator(;) + predefined(closedir)operator(()local_variable($dh)operator(\))operator(;) operator(@)predefined(rmdir)operator(()local_variable($dir)operator(\))operator(;) operator(}) operator(}) comment(// Launcher - performs validation then starts recursive routine) -pre_type(function) ident(rmtree)operator(()local_variable($dir)operator(\)) +reserved(function) ident(rmtree)operator(()local_variable($dir)operator(\)) operator({) - reserved(if) operator(()ident(is_dir)operator(()local_variable($dir)operator(\))operator(\)) + reserved(if) operator(()predefined(is_dir)operator(()local_variable($dir)operator(\))operator(\)) operator({) - operator(()ident(substr)operator(()local_variable($dir)operator(,) integer(-1)operator(,) integer(1)operator(\)) operator(==) delimiter(')string(/)delimiter(')operator(\)) operator(&)operator(&) operator(()local_variable($dir) operator(=) ident(substr)operator(()local_variable($dir)operator(,) integer(0)operator(,) integer(-1)operator(\))operator(\))operator(;) - ident(rmtree_)operator(()local_variable($dir)operator(\))operator(;) reserved(return) operator(!)ident(is_dir)operator(()local_variable($dir)operator(\))operator(;) + operator(()predefined(substr)operator(()local_variable($dir)operator(,) operator(-)integer(1)operator(,) integer(1)operator(\)) operator(==) string<delimiter(')content(/)delimiter(')>operator(\)) operator(&)operator(&) operator(()local_variable($dir) operator(=) predefined(substr)operator(()local_variable($dir)operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(\))operator(;) + ident(rmtree_)operator(()local_variable($dir)operator(\))operator(;) predefined(return) operator(!)predefined(is_dir)operator(()local_variable($dir)operator(\))operator(;) operator(}) - reserved(return) constant(FALSE)operator(;) + predefined(return) reserved(FALSE)operator(;) operator(}) comment(// ------------) -local_variable($argc) operator(==) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: rmtree dir)char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(==) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: rmtree dir)char(\\n)delimiter(")>operator(\))operator(;) -ident(rmtree)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Could not remove directory )operator({)local_variable($argv)operator([)integer(1)operator(])operator(})char(\\n)delimiter(")operator(\))operator(;) +ident(rmtree)operator(()local_variable($argv)operator([)integer(1)operator(])operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Could not remove directory )operator({)local_variable($argv)operator([)integer(1)operator(])operator(})char(\\n)delimiter(")>operator(\))operator(;) comment(// @@PLEAC@@_9.9) -local_variable($filepairs) operator(=) pre_type(array)operator(()delimiter(')string(x.txt)delimiter(') operator(=>) delimiter(')string(x2.txt)delimiter(')operator(,) delimiter(')string(y.txt)delimiter(') operator(=>) delimiter(')string(y.doc)delimiter(')operator(,) delimiter(')string(zxc.txt)delimiter(') operator(=>) delimiter(')string(cxz.txt)delimiter(')operator(\))operator(;) +local_variable($filepairs) operator(=) predefined(array)operator(()string<delimiter(')content(x.txt)delimiter(')> operator(=>) string<delimiter(')content(x2.txt)delimiter(')>operator(,) string<delimiter(')content(y.txt)delimiter(')> operator(=>) string<delimiter(')content(y.doc)delimiter(')>operator(,) string<delimiter(')content(zxc.txt)delimiter(')> operator(=>) string<delimiter(')content(cxz.txt)delimiter(')>operator(\))operator(;) reserved(foreach)operator(()local_variable($filepairs) reserved(as) local_variable($oldfile) operator(=>) local_variable($newfile)operator(\)) operator({) - operator(@)ident(rename)operator(()local_variable($oldfile)operator(,) local_variable($newfile)operator(\)) operator(|)operator(|) ident(fwrite)operator(()constant(STDERR)operator(,) ident(sprintf)operator(()delimiter(")string(Could not rename %s to %s)char(\\n)delimiter(")operator(,) local_variable($oldfile)operator(,) local_variable($newfile)operator(\))operator(\))operator(;) + operator(@)predefined(rename)operator(()local_variable($oldfile)operator(,) local_variable($newfile)operator(\)) operator(|)operator(|) predefined(fwrite)operator(()constant(STDERR)operator(,) predefined(sprintf)operator(()string<delimiter(")content(Could not rename %s to %s)char(\\n)delimiter(")>operator(,) local_variable($oldfile)operator(,) local_variable($newfile)operator(\))operator(\))operator(;) operator(}) comment(// ----------------------------) @@ -3725,13 +3725,13 @@ comment(// Call a system command utility via, 'exec'. *NIX-specific example. Cou comment(// 'exec', succeeded, but checking whether a renamed file exists after the operation might) comment(// be a better approach) -local_variable($oldfile) operator(=) delimiter(')string(/tmp/old)delimiter(')operator(;) local_variable($newfile) operator(=) delimiter(')string(/tmp/new)delimiter(')operator(;) +local_variable($oldfile) operator(=) string<delimiter(')content(/tmp/old)delimiter(')>operator(;) local_variable($newfile) operator(=) string<delimiter(')content(/tmp/new)delimiter(')>operator(;) -ident(is_file)operator(()local_variable($newfile)operator(\)) operator(&)operator(&) ident(unlink)operator(()local_variable($newfile)operator(\))operator(;) +predefined(is_file)operator(()local_variable($newfile)operator(\)) operator(&)operator(&) predefined(unlink)operator(()local_variable($newfile)operator(\))operator(;) -ident(exec)operator(()ident(trim)operator(()delimiter(')string(mv --force )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($oldfile)operator(\)) operator(.) delimiter(')string( )delimiter(') operator(.) ident(escapeshellarg)operator(()local_variable($newfile)operator(\))operator(\))operator(\))operator(;) +predefined(exec)operator(()predefined(trim)operator(()string<delimiter(')content(mv --force )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($oldfile)operator(\)) operator(.) string<delimiter(')content( )delimiter(')> operator(.) predefined(escapeshellarg)operator(()local_variable($newfile)operator(\))operator(\))operator(\))operator(;) -ident(is_file)operator(()local_variable($oldfile)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Problem renaming file )operator({)local_variable($oldfile)operator(})string( to file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")operator(\))operator(;) +predefined(is_file)operator(()local_variable($oldfile)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Problem renaming file )operator({)local_variable($oldfile)operator(})content( to file )operator({)local_variable($newfile)operator(})char(\\n)delimiter(")>operator(\))operator(;) comment(// For other operating systems just change:) comment(// * filenames) @@ -3745,70 +3745,70 @@ comment(// a single expression, a 'from' regexp is passed; each match in the fil comment(// name(s\) is changed to the value of 'to'. It otherwise behaves the same) comment(//) -local_variable($argc) operator(>) integer(2) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: rename from to [file ...])char(\\n)delimiter(")operator(\))operator(;) +local_variable($argc) operator(>) integer(2) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: rename from to [file ...])char(\\n)delimiter(")>operator(\))operator(;) local_variable($from) operator(=) local_variable($argv)operator([)integer(1)operator(])operator(;) local_variable($to) operator(=) local_variable($argv)operator([)integer(2)operator(])operator(;) -reserved(if) operator(()ident(count)operator(()operator(()local_variable($argv) operator(=) ident(array_slice)operator(()local_variable($argv)operator(,) integer(3)operator(\))operator(\))operator(\)) operator(<) integer(1)operator(\)) - reserved(while) operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) local_variable($argv)operator([)operator(]) operator(=) ident(substr)operator(()ident(fgets)operator(()constant(STDIN)operator(\))operator(,) integer(0)operator(,) integer(-1)operator(\))operator(;) +reserved(if) operator(()predefined(count)operator(()operator(()local_variable($argv) operator(=) predefined(array_slice)operator(()local_variable($argv)operator(,) integer(3)operator(\))operator(\))operator(\)) operator(<) integer(1)operator(\)) + reserved(while) operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) local_variable($argv)operator([)operator(]) operator(=) predefined(substr)operator(()predefined(fgets)operator(()constant(STDIN)operator(\))operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(;) reserved(foreach)operator(()local_variable($argv) reserved(as) local_variable($file)operator(\)) operator({) local_variable($was) operator(=) local_variable($file)operator(;) local_variable($file) operator(=) ident(ereg_replace)operator(()local_variable($from)operator(,) local_variable($to)operator(,) local_variable($file)operator(\))operator(;) - reserved(if) operator(()ident(strcmp)operator(()local_variable($was)operator(,) local_variable($file)operator(\)) operator(!=) integer(0)operator(\)) - operator(@)ident(rename)operator(()local_variable($was)operator(,) local_variable($file)operator(\)) operator(|)operator(|) ident(fwrite)operator(()constant(STDERR)operator(,) ident(sprintf)operator(()delimiter(")string(Could not rename %s to %s)char(\\n)delimiter(")operator(,) local_variable($was)operator(,) local_variable($file)operator(\))operator(\))operator(;) + reserved(if) operator(()predefined(strcmp)operator(()local_variable($was)operator(,) local_variable($file)operator(\)) operator(!=) integer(0)operator(\)) + operator(@)predefined(rename)operator(()local_variable($was)operator(,) local_variable($file)operator(\)) operator(|)operator(|) predefined(fwrite)operator(()constant(STDERR)operator(,) predefined(sprintf)operator(()string<delimiter(")content(Could not rename %s to %s)char(\\n)delimiter(")>operator(,) local_variable($was)operator(,) local_variable($file)operator(\))operator(\))operator(;) operator(}) comment(// @@PLEAC@@_9.10) -local_variable($base) operator(=) ident(basename)operator(()local_variable($path)operator(\))operator(;) -local_variable($dir) operator(=) ident(dirname)operator(()local_variable($path)operator(\))operator(;) +local_variable($base) operator(=) predefined(basename)operator(()local_variable($path)operator(\))operator(;) +local_variable($dir) operator(=) predefined(dirname)operator(()local_variable($path)operator(\))operator(;) comment(// PHP's equivalent to Perl's 'fileparse') -local_variable($pathinfo) operator(=) ident(pathinfo)operator(()local_variable($path)operator(\))operator(;) +local_variable($pathinfo) operator(=) predefined(pathinfo)operator(()local_variable($path)operator(\))operator(;) -local_variable($base) operator(=) local_variable($pathinfo)operator([)delimiter(')string(basename)delimiter(')operator(])operator(;) -local_variable($dir) operator(=) local_variable($pathinfo)operator([)delimiter(')string(dirname)delimiter(')operator(])operator(;) -local_variable($ext) operator(=) local_variable($pathinfo)operator([)delimiter(')string(extension)delimiter(')operator(])operator(;) +local_variable($base) operator(=) local_variable($pathinfo)operator([)string<delimiter(')content(basename)delimiter(')>operator(])operator(;) +local_variable($dir) operator(=) local_variable($pathinfo)operator([)string<delimiter(')content(dirname)delimiter(')>operator(])operator(;) +local_variable($ext) operator(=) local_variable($pathinfo)operator([)string<delimiter(')content(extension)delimiter(')>operator(])operator(;) comment(// ----------------------------) -local_variable($path) operator(=) delimiter(')string(/usr/lib/libc.a)delimiter(')operator(;) +local_variable($path) operator(=) string<delimiter(')content(/usr/lib/libc.a)delimiter(')>operator(;) -ident(printf)operator(()delimiter(")string(dir is %s, file is %s)char(\\n)delimiter(")operator(,) ident(dirname)operator(()local_variable($path)operator(\))operator(,) ident(basename)operator(()local_variable($path)operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(dir is %s, file is %s)char(\\n)delimiter(")>operator(,) predefined(dirname)operator(()local_variable($path)operator(\))operator(,) predefined(basename)operator(()local_variable($path)operator(\))operator(\))operator(;) comment(// ------------) -local_variable($path) operator(=) delimiter(')string(/usr/lib/libc.a)delimiter(')operator(;) +local_variable($path) operator(=) string<delimiter(')content(/usr/lib/libc.a)delimiter(')>operator(;) -local_variable($pathinfo) operator(=) ident(pathinfo)operator(()local_variable($path)operator(\))operator(;) +local_variable($pathinfo) operator(=) predefined(pathinfo)operator(()local_variable($path)operator(\))operator(;) -ident(printf)operator(()delimiter(")string(dir is %s, name is %s, extension is %s)char(\\n)delimiter(")operator(,) local_variable($pathinfo)operator([)delimiter(')string(dirname)delimiter(')operator(])operator(,) local_variable($pathinfo)operator([)delimiter(')string(basename)delimiter(')operator(])operator(,) local_variable($pathinfo)operator([)delimiter(')string(extension)delimiter(')operator(])operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(dir is %s, name is %s, extension is %s)char(\\n)delimiter(")>operator(,) local_variable($pathinfo)operator([)string<delimiter(')content(dirname)delimiter(')>operator(])operator(,) local_variable($pathinfo)operator([)string<delimiter(')content(basename)delimiter(')>operator(])operator(,) local_variable($pathinfo)operator([)string<delimiter(')content(extension)delimiter(')>operator(])operator(\))operator(;) comment(// ----------------------------) comment(// Handle Mac example as a simple parse task. However, AFAIK, 'pathinfo' is cross-platform,) comment(// so should handle file path format differences transparently) -local_variable($path) operator(=) delimiter(')string(Hard%20Drive:System%20Folder:README.txt)delimiter(')operator(;) +local_variable($path) operator(=) string<delimiter(')content(Hard%20Drive:System%20Folder:README.txt)delimiter(')>operator(;) -local_variable($macp) operator(=) ident(array_combine)operator(()pre_type(array)operator(()delimiter(')string(drive)delimiter(')operator(,) delimiter(')string(folder)delimiter(')operator(,) delimiter(')string(filename)delimiter(')operator(\))operator(,) ident(split)operator(()delimiter(")string(\\)string(:)delimiter(")operator(,) ident(str_replace)operator(()delimiter(')string(%20)delimiter(')operator(,) delimiter(')string( )delimiter(')operator(,) local_variable($path)operator(\))operator(\))operator(\))operator(;) -local_variable($macf) operator(=) ident(array_combine)operator(()pre_type(array)operator(()delimiter(')string(name)delimiter(')operator(,) delimiter(')string(extension)delimiter(')operator(\))operator(,) ident(split)operator(()delimiter(")string(\\)string(.)delimiter(")operator(,) local_variable($macp)operator([)delimiter(')string(filename)delimiter(')operator(])operator(\))operator(\))operator(;) +local_variable($macp) operator(=) predefined(array_combine)operator(()predefined(array)operator(()string<delimiter(')content(drive)delimiter(')>operator(,) string<delimiter(')content(folder)delimiter(')>operator(,) string<delimiter(')content(filename)delimiter(')>operator(\))operator(,) predefined(split)operator(()string<delimiter(")content(\\:)delimiter(")>operator(,) predefined(str_replace)operator(()string<delimiter(')content(%20)delimiter(')>operator(,) string<delimiter(')content( )delimiter(')>operator(,) local_variable($path)operator(\))operator(\))operator(\))operator(;) +local_variable($macf) operator(=) predefined(array_combine)operator(()predefined(array)operator(()string<delimiter(')content(name)delimiter(')>operator(,) string<delimiter(')content(extension)delimiter(')>operator(\))operator(,) predefined(split)operator(()string<delimiter(")content(\\.)delimiter(")>operator(,) local_variable($macp)operator([)string<delimiter(')content(filename)delimiter(')>operator(])operator(\))operator(\))operator(;) -ident(printf)operator(()delimiter(")string(dir is %s, name is %s, extension is %s)char(\\n)delimiter(")operator(,) operator(()local_variable($macp)operator([)delimiter(')string(drive)delimiter(')operator(]) operator(.) delimiter(')string(:)delimiter(') operator(.) local_variable($macp)operator([)delimiter(')string(folder)delimiter(')operator(])operator(\))operator(,) local_variable($macf)operator([)delimiter(')string(name)delimiter(')operator(])operator(,) operator(()delimiter(')string(.)delimiter(') operator(.) local_variable($macf)operator([)delimiter(')string(extension)delimiter(')operator(])operator(\))operator(\))operator(;) +predefined(printf)operator(()string<delimiter(")content(dir is %s, name is %s, extension is %s)char(\\n)delimiter(")>operator(,) operator(()local_variable($macp)operator([)string<delimiter(')content(drive)delimiter(')>operator(]) operator(.) string<delimiter(')content(:)delimiter(')> operator(.) local_variable($macp)operator([)string<delimiter(')content(folder)delimiter(')>operator(])operator(\))operator(,) local_variable($macf)operator([)string<delimiter(')content(name)delimiter(')>operator(])operator(,) operator(()string<delimiter(')content(.)delimiter(')> operator(.) local_variable($macf)operator([)string<delimiter(')content(extension)delimiter(')>operator(])operator(\))operator(\))operator(;) comment(// ----------------------------) comment(// Not really necessary since we have, 'pathinfo', but better matches Perl example) -pre_type(function) ident(file_extension)operator(()local_variable($filename)operator(,) local_variable($separator) operator(=) delimiter(')string(.)delimiter(')operator(\)) +reserved(function) ident(file_extension)operator(()local_variable($filename)operator(,) local_variable($separator) operator(=) string<delimiter(')content(.)delimiter(')>operator(\)) operator({) - reserved(return) ident(end)operator(()ident(split)operator(()operator(()delimiter(")char(\\\\)delimiter(") operator(.) local_variable($separator)operator(\))operator(,) local_variable($filename)operator(\))operator(\))operator(;) + predefined(return) predefined(end)operator(()predefined(split)operator(()operator(()string<delimiter(")char(\\\\)delimiter(")> operator(.) local_variable($separator)operator(\))operator(,) local_variable($filename)operator(\))operator(\))operator(;) operator(}) comment(// ----) -pre_type(echo) ident(file_extension)operator(()delimiter(')string(readme.txt)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) ident(file_extension)operator(()string<delimiter(')content(readme.txt)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_9.11) comment(// @@INCOMPLETE@@) @@ -3827,43 +3827,43 @@ comment(// ------------) comment(// Must use, 'global', keyword to inform functions that $greeted already exists as) comment(// a global variable. If this is not done, a local variable of that name is implicitly) comment(// defined) -pre_type(function) ident(howManyGreetings)operator(()operator(\)) +reserved(function) ident(howManyGreetings)operator(()operator(\)) operator({) - pre_type(global) local_variable($greeted)operator(;) - reserved(return) local_variable($greeted)operator(;) + reserved(global) local_variable($greeted)operator(;) + predefined(return) local_variable($greeted)operator(;) operator(}) -pre_type(function) ident(hello)operator(()operator(\)) +reserved(function) ident(hello)operator(()operator(\)) operator({) - pre_type(global) local_variable($greeted)operator(;) + reserved(global) local_variable($greeted)operator(;) local_variable($greeted)operator(++)operator(;) - pre_type(echo) delimiter(")string(high there!, this procedure has been called )operator({)local_variable($greeted)operator(})string( times)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(high there!, this procedure has been called )operator({)local_variable($greeted)operator(})content( times)char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) ident(hello)operator(()operator(\))operator(;) local_variable($greetings) operator(=) ident(howManyGreetings)operator(()operator(\))operator(;) -pre_type(echo) delimiter(")string(bye there!, there have been )operator({)local_variable($greetings)operator(})string( greetings so far)char(\\n)delimiter(")operator(;) +predefined(echo) string<delimiter(")content(bye there!, there have been )operator({)local_variable($greetings)operator(})content( greetings so far)char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_10.1) comment(// Conventionally-defined function together with parameter list) -pre_type(function) ident(hypotenuse)operator(()local_variable($side1)operator(,) local_variable($side2)operator(\)) +reserved(function) ident(hypotenuse)operator(()local_variable($side1)operator(,) local_variable($side2)operator(\)) operator({) - reserved(return) ident(sqrt)operator(()ident(pow)operator(()local_variable($side1)operator(,) integer(2)operator(\)) operator(+) ident(pow)operator(()local_variable($side2)operator(,) integer(2)operator(\))operator(\))operator(;) + predefined(return) predefined(sqrt)operator(()predefined(pow)operator(()local_variable($side1)operator(,) integer(2)operator(\)) operator(+) predefined(pow)operator(()local_variable($side2)operator(,) integer(2)operator(\))operator(\))operator(;) operator(}) comment(// ----) comment(// Alternative is to define the function without parameter list, then use) comment(// 'func_get_arg' to extract arguments) -pre_type(function) ident(hypotenuse)operator(()operator(\)) +reserved(function) ident(hypotenuse)operator(()operator(\)) operator({) comment(// Could check number of arguments passed with: 'func_num_args', which) comment(// would be the approach used if dealing with variable number of arguments) - local_variable($side1) operator(=) ident(func_get_arg)operator(()integer(0)operator(\))operator(;) local_variable($side2) operator(=) ident(func_get_arg)operator(()integer(1)operator(\))operator(;) + local_variable($side1) operator(=) predefined(func_get_arg)operator(()integer(0)operator(\))operator(;) local_variable($side2) operator(=) predefined(func_get_arg)operator(()integer(1)operator(\))operator(;) - reserved(return) ident(sqrt)operator(()ident(pow)operator(()local_variable($side1)operator(,) integer(2)operator(\)) operator(+) ident(pow)operator(()local_variable($side2)operator(,) integer(2)operator(\))operator(\))operator(;) + predefined(return) predefined(sqrt)operator(()predefined(pow)operator(()local_variable($side1)operator(,) integer(2)operator(\)) operator(+) predefined(pow)operator(()local_variable($side2)operator(,) integer(2)operator(\))operator(\))operator(;) operator(}) comment(// ------------) @@ -3874,31 +3874,31 @@ local_variable($diag) operator(=) ident(hypotenuse)operator(()integer(3)operator comment(// ------------) comment(// 2. Function call using, 'call_user_func' library routines) -local_variable($funcname) operator(=) delimiter(')string(hypotenuse)delimiter(')operator(;) +local_variable($funcname) operator(=) string<delimiter(')content(hypotenuse)delimiter(')>operator(;) comment(// a. Pass function name, and variable number of arguments) local_variable($diag) operator(=) ident(call_user_func)operator(()local_variable($funcname)operator(,) integer(3)operator(,) integer(4)operator(\))operator(;) comment(// b. Package arguments as array, pass together with function name) -local_variable($args) operator(=) pre_type(array)operator(()integer(3)operator(,) integer(4)operator(\))operator(;) +local_variable($args) operator(=) predefined(array)operator(()integer(3)operator(,) integer(4)operator(\))operator(;) local_variable($diag) operator(=) ident(call_user_func_array)operator(()local_variable($funcname)operator(,) local_variable($args)operator(\))operator(;) comment(// ----------------------------) -local_variable($nums) operator(=) pre_type(array)operator(()integer(1)float(.4)operator(,) integer(3)float(.5)operator(,) integer(6)float(.7)operator(\))operator(;) +local_variable($nums) operator(=) predefined(array)operator(()float(1.4)operator(,) float(3.5)operator(,) float(6.7)operator(\))operator(;) comment(// ------------) comment(// Pass-by-value) -pre_type(function) ident(int_all)operator(()local_variable($arr)operator(\)) +reserved(function) ident(int_all)operator(()local_variable($arr)operator(\)) operator({) - reserved(return) ident(array_map)operator(()ident(create_function)operator(()delimiter(')string($n)delimiter(')operator(,) delimiter(')string(return (int\) $n;)delimiter(')operator(\))operator(,) local_variable($arr)operator(\))operator(;) + predefined(return) predefined(array_map)operator(()ident(create_function)operator(()string<delimiter(')content($n)delimiter(')>operator(,) string<delimiter(')content(return (int\) $n;)delimiter(')>operator(\))operator(,) local_variable($arr)operator(\))operator(;) operator(}) comment(// Pass-by-reference) -pre_type(function) ident(trunc_em)operator(()operator(&)local_variable($n)operator(\)) +reserved(function) ident(trunc_em)operator(()operator(&)local_variable($n)operator(\)) operator({) - reserved(foreach) operator(()local_variable($n) reserved(as) operator(&)local_variable($value)operator(\)) local_variable($value) operator(=) operator(()ident(int)operator(\)) local_variable($value)operator(;) + reserved(foreach) operator(()local_variable($n) reserved(as) operator(&)local_variable($value)operator(\)) local_variable($value) operator(=) operator(()pre_type(int)operator(\)) local_variable($value)operator(;) operator(}) comment(// ------------) @@ -3932,10 +3932,10 @@ comment(// declared 'global', and those names are then taken to refer to entries comment(// in the $GLOBALS array rather than seeing local variables of that name) comment(// accessed or defined) -pre_type(function) ident(some_func)operator(()operator(\)) +reserved(function) ident(some_func)operator(()operator(\)) operator({) comment(// Variables declared within a function are local to that function) - local_variable($variable) operator(=) delimiter(')string(something)delimiter(')operator(;) + local_variable($variable) operator(=) string<delimiter(')content(something)delimiter(')>operator(;) operator(}) comment(// ----------------------------) @@ -3949,21 +3949,21 @@ local_variable($condition) operator(=) integer(0)operator(;) comment(// ------------) -pre_type(function) ident(run_check)operator(()operator(\)) +reserved(function) ident(run_check)operator(()operator(\)) operator({) comment(// The globally-declared variable, '$condition', is not accessable within) comment(// the function unless it declared as 'global. Had this not been done then) comment(// attempts to access, '$condition', would have seen a local variable) comment(// of that name declared and updated. Same applies to other variables) - pre_type(global) local_variable($condition)operator(,) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($c)operator(;) + reserved(global) local_variable($condition)operator(,) local_variable($name)operator(,) local_variable($age)operator(,) local_variable($c)operator(;) local_variable($condition) operator(=) integer(1)operator(;) comment(// ...) operator(}) -pre_type(function) ident(check_x)operator(()local_variable($x)operator(\)) +reserved(function) ident(check_x)operator(()local_variable($x)operator(\)) operator({) - local_variable($y) operator(=) delimiter(')string(whatever)delimiter(')operator(;) + local_variable($y) operator(=) string<delimiter(')content(whatever)delimiter(')>operator(;) comment(// This function only has access to the parameter, '$x', and the locally) comment(// declared variable, '$y'.) @@ -3973,7 +3973,7 @@ operator({) comment(// it must be declared 'global') ident(run_check)operator(()operator(\))operator(;) - pre_type(global) local_variable($condition)operator(;) + reserved(global) local_variable($condition)operator(;) comment(// 'run_check' will have updated, '$condition', and since it has been) comment(// declared 'global' here, it is accessable) @@ -3994,7 +3994,7 @@ operator({) operator(}) comment(// '$myvariable' is accessable here) -pre_type(echo) local_variable($myvariable) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) local_variable($myvariable) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ------------) @@ -4007,7 +4007,7 @@ operator({) comment(// * 'next_counter' has no implict access to '$counter'; must be granted) comment(// via 'global' keyword) - pre_type(function) ident(next_counter)operator(()operator(\)) operator({) pre_type(global) local_variable($counter)operator(;) local_variable($counter)operator(++)operator(;) operator(}) + reserved(function) ident(next_counter)operator(()operator(\)) operator({) reserved(global) local_variable($counter)operator(;) local_variable($counter)operator(++)operator(;) operator(}) operator(}) comment(// ----------------------------) @@ -4016,24 +4016,24 @@ comment(// PHP doesn't, AFAIK, offer an equivalent to Perl's BEGIN block. Simila comment(// behaviour may be obtained by defining a class, and including such code) comment(// in its constructor) -pre_type(class) constant(BEGIN) +reserved(class) constant(BEGIN) operator({) - pre_type(private) local_variable($myvariable)operator(;) + reserved(private) local_variable($myvariable)operator(;) - pre_type(function) ident(__construct)operator(()operator(\)) + reserved(function) ident(__construct)operator(()operator(\)) operator({) local_variable($this)operator(->)ident(myvariable) operator(=) integer(5)operator(;) operator(}) - pre_type(function) ident(othersub)operator(()operator(\)) + reserved(function) ident(othersub)operator(()operator(\)) operator({) - pre_type(echo) local_variable($this)operator(->)ident(myvariable) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) local_variable($this)operator(->)ident(myvariable) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) operator(}) comment(// ------------) -local_variable($b) operator(=) pre_type(new) constant(BEGIN)operator(()operator(\))operator(;) +local_variable($b) operator(=) reserved(new) constant(BEGIN)operator(()operator(\))operator(;) local_variable($b)operator(->)ident(othersub)operator(()operator(\))operator(;) @@ -4043,25 +4043,25 @@ comment(// PHP, like C, supports 'static' local variables, that is, those that u comment(// first access are initialised, and thence retain their value between function) comment(// calls. However, the 'counter' example is better implemented as a class) -pre_type(class) constant(Counter) +reserved(class) constant(Counter) operator({) - pre_type(private) local_variable($counter)operator(;) + reserved(private) local_variable($counter)operator(;) - pre_type(function) ident(__construct)operator(()local_variable($counter_init)operator(\)) + reserved(function) ident(__construct)operator(()local_variable($counter_init)operator(\)) operator({) local_variable($this)operator(->)ident(counter) operator(=) local_variable($counter_init)operator(;) operator(}) - pre_type(function) ident(next_counter)operator(()operator(\)) operator({) local_variable($this)operator(->)ident(counter)operator(++)operator(;) reserved(return) local_variable($this)operator(->)ident(counter)operator(;) operator(}) - pre_type(function) ident(prev_counter)operator(()operator(\)) operator({) local_variable($this)operator(->)ident(counter)operator(;) reserved(return) local_variable($this)operator(->)ident(counter)operator(;) operator(}) + reserved(function) ident(next_counter)operator(()operator(\)) operator({) local_variable($this)operator(->)ident(counter)operator(++)operator(;) predefined(return) local_variable($this)operator(->)ident(counter)operator(;) operator(}) + reserved(function) ident(prev_counter)operator(()operator(\)) operator({) local_variable($this)operator(->)ident(counter)operator(;) predefined(return) local_variable($this)operator(->)ident(counter)operator(;) operator(}) operator(}) comment(// ------------) -local_variable($counter) operator(=) pre_type(new) constant(Counter)operator(()integer(42)operator(\))operator(;) -pre_type(echo) local_variable($counter)operator(->)ident(next_counter)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) local_variable($counter)operator(->)ident(next_counter)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) -pre_type(echo) local_variable($counter)operator(->)ident(prev_counter)operator(()operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +local_variable($counter) operator(=) reserved(new) constant(Counter)operator(()integer(42)operator(\))operator(;) +predefined(echo) local_variable($counter)operator(->)ident(next_counter)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) local_variable($counter)operator(->)ident(next_counter)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) +predefined(echo) local_variable($counter)operator(->)ident(prev_counter)operator(()operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// @@PLEAC@@_10.4) comment(// AFAICT there is no means of obtaining the name of the currently executing) @@ -4076,10 +4076,10 @@ comment(// So, to solve this problem would seem to require adopting a convention comment(// a string representing the function name is passed as an argument, or a local) comment(// variable [perhaps called, '$name'] is so set [contrived, and of limited use]) -pre_type(function) ident(whoami)operator(()operator(\)) +reserved(function) ident(whoami)operator(()operator(\)) operator({) - local_variable($name) operator(=) delimiter(')string(whoami)delimiter(')operator(;) - pre_type(echo) delimiter(")string(I am: )operator({)local_variable($name)operator(})char(\\n)delimiter(")operator(;) + local_variable($name) operator(=) string<delimiter(')content(whoami)delimiter(')>operator(;) + predefined(echo) string<delimiter(")content(I am: )operator({)local_variable($name)operator(})char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) @@ -4104,47 +4104,47 @@ comment(// is not altered.) comment(// A copy of the item referred to by, '$arr', is made, and altered; original) comment(// remains intact) -pre_type(function) ident(array_by_value)operator(()local_variable($arr)operator(\)) +reserved(function) ident(array_by_value)operator(()local_variable($arr)operator(\)) operator({) local_variable($arr)operator([)integer(0)operator(]) operator(=) integer(7)operator(;) - pre_type(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// No copy is made; original item referred to by, '$arr', is altered) -pre_type(function) ident(array_by_ref)operator(()operator(&)local_variable($arr)operator(\)) +reserved(function) ident(array_by_ref)operator(()operator(&)local_variable($arr)operator(\)) operator({) local_variable($arr)operator([)integer(0)operator(]) operator(=) integer(7)operator(;) - pre_type(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) comment(// ------------) -local_variable($arr) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) +local_variable($arr) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) -pre_type(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// output: 1 ) +predefined(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// output: 1 ) ident(array_by_value)operator(()local_variable($arr)operator(\))operator(;) comment(// output: 7) -pre_type(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// output: 1 ) +predefined(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// output: 1 ) -local_variable($arr) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) +local_variable($arr) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) -pre_type(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// output: 1 ) +predefined(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// output: 1 ) ident(array_by_ref)operator(()local_variable($arr)operator(\))operator(;) comment(// output: 7) -pre_type(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) delimiter(")char(\\n)delimiter(")operator(;) comment(// output: 7 ) +predefined(echo) local_variable($arr)operator([)integer(0)operator(]) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// output: 7 ) comment(// ----------------------------) comment(// Since, 'add_vecpair', does not attempt to alter either, '$x' or '$y', it makes) comment(// no difference whether they are 'passed by value', or 'passed by reference') -pre_type(function) ident(add_vecpair)operator(()local_variable($x)operator(,) local_variable($y)operator(\)) +reserved(function) ident(add_vecpair)operator(()local_variable($x)operator(,) local_variable($y)operator(\)) operator({) - local_variable($r) operator(=) pre_type(array)operator(()operator(\))operator(;) - local_variable($length) operator(=) ident(count)operator(()local_variable($x)operator(\))operator(;) + local_variable($r) operator(=) predefined(array)operator(()operator(\))operator(;) + local_variable($length) operator(=) predefined(count)operator(()local_variable($x)operator(\))operator(;) reserved(for)operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) local_variable($length)operator(;) local_variable($i)operator(++)operator(\)) local_variable($r)operator([)local_variable($i)operator(]) operator(=) local_variable($x)operator([)local_variable($i)operator(]) operator(+) local_variable($y)operator([)local_variable($i)operator(])operator(;) - reserved(return) local_variable($r)operator(;) + predefined(return) local_variable($r)operator(;) operator(}) comment(// ...) -ident(count)operator(()local_variable($arr1)operator(\)) operator(==) ident(count)operator(()local_variable($arr2)operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(usage: add_vecpair ARR1 ARR2)char(\\n)delimiter(")operator(\))operator(;) +predefined(count)operator(()local_variable($arr1)operator(\)) operator(==) predefined(count)operator(()local_variable($arr2)operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(usage: add_vecpair ARR1 ARR2)char(\\n)delimiter(")>operator(\))operator(;) comment(// 'passed by value') local_variable($arr3) operator(=) ident(add_vecpair)operator(()local_variable($arr1)operator(,) local_variable($arr2)operator(\))operator(;) @@ -4163,14 +4163,14 @@ comment(// when obtaining it's return value. As for Perl-style 'return context', comment(// don't believe it is supported by PHP) comment(// Can return any type) -pre_type(function) ident(mysub)operator(()operator(\)) +reserved(function) ident(mysub)operator(()operator(\)) operator({) comment(// ...) - reserved(return) integer(5)operator(;) + predefined(return) integer(5)operator(;) comment(// ...) - reserved(return) pre_type(array)operator(()integer(5)operator(\))operator(;) + predefined(return) predefined(array)operator(()integer(5)operator(\))operator(;) comment(// ...) - reserved(return) delimiter(')string(5)delimiter(')operator(;) + predefined(return) string<delimiter(')content(5)delimiter(')>operator(;) operator(}) comment(// Throw away return type [i.e. returns a 'void' type ?]) @@ -4181,17 +4181,17 @@ comment(// * gettype($var\)) comment(// * is_xxx e.g. is_array($var\), is_muneric($var\), ...) local_variable($ret) operator(=) ident(mysub)operator(()operator(\))operator(;) -reserved(if) operator(()ident(is_numeric)operator(()local_variable($ret)operator(\))operator(\)) +reserved(if) operator(()predefined(is_numeric)operator(()local_variable($ret)operator(\))operator(\)) operator({) operator(;) comment(// ...) operator(}) -reserved(if) operator(()ident(is_array)operator(()local_variable($ret)operator(\))operator(\)) +reserved(if) operator(()predefined(is_array)operator(()local_variable($ret)operator(\))operator(\)) operator({) operator(;) comment(// ...) operator(}) -reserved(if) operator(()ident(is_string)operator(()local_variable($ret)operator(\))operator(\)) +reserved(if) operator(()predefined(is_string)operator(()local_variable($ret)operator(\))operator(\)) operator({) operator(;) comment(// ...) operator(}) @@ -4201,25 +4201,25 @@ comment(// PHP doesn't directly support named / keyword parameters, but these ca comment(// easily mimiced using a class of key / value pairs, and passing a variable) comment(// number of arguments) -pre_type(class) constant(KeyedValue) +reserved(class) constant(KeyedValue) operator({) - pre_type(public) local_variable($key)operator(,) local_variable($value)operator(;) - pre_type(public) pre_type(function) ident(__construct)operator(()local_variable($key)operator(,) local_variable($value)operator(\)) operator({) local_variable($this)operator(->)ident(key) operator(=) local_variable($key)operator(;) local_variable($this)operator(->)ident(value) operator(=) local_variable($value)operator(;) operator(}) + reserved(public) local_variable($key)operator(,) local_variable($value)operator(;) + reserved(public) reserved(function) ident(__construct)operator(()local_variable($key)operator(,) local_variable($value)operator(\)) operator({) local_variable($this)operator(->)predefined(key) operator(=) local_variable($key)operator(;) local_variable($this)operator(->)ident(value) operator(=) local_variable($value)operator(;) operator(}) operator(}) -pre_type(function) ident(the_func)operator(()operator(\)) +reserved(function) ident(the_func)operator(()operator(\)) operator({) - reserved(foreach) operator(()ident(func_get_args)operator(()operator(\)) reserved(as) local_variable($arg)operator(\)) + reserved(foreach) operator(()predefined(func_get_args)operator(()operator(\)) reserved(as) local_variable($arg)operator(\)) operator({) - ident(printf)operator(()delimiter(")string(Key: %10s|Value:%10s)char(\\n)delimiter(")operator(,) local_variable($arg)operator(->)ident(key)operator(,) local_variable($arg)operator(->)ident(value)operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(Key: %10s|Value:%10s)char(\\n)delimiter(")>operator(,) local_variable($arg)operator(->)predefined(key)operator(,) local_variable($arg)operator(->)ident(value)operator(\))operator(;) operator(}) operator(}) comment(// ----) -ident(the_func)operator(()pre_type(new) constant(KeyedValue)operator(()delimiter(')string(name)delimiter(')operator(,) delimiter(')string(Bob)delimiter(')operator(\))operator(,) - pre_type(new) constant(KeyedValue)operator(()delimiter(')string(age)delimiter(')operator(,) integer(36)operator(\))operator(,) - pre_type(new) constant(KeyedValue)operator(()delimiter(')string(income)delimiter(')operator(,) integer(51000)operator(\))operator(\))operator(;) +ident(the_func)operator(()reserved(new) constant(KeyedValue)operator(()string<delimiter(')content(name)delimiter(')>operator(,) string<delimiter(')content(Bob)delimiter(')>operator(\))operator(,) + reserved(new) constant(KeyedValue)operator(()string<delimiter(')content(age)delimiter(')>operator(,) integer(36)operator(\))operator(,) + reserved(new) constant(KeyedValue)operator(()string<delimiter(')content(income)delimiter(')>operator(,) integer(51000)operator(\))operator(\))operator(;) comment(// ----------------------------) @@ -4228,46 +4228,46 @@ comment(// With the aid of the 'extract' built-in function, the key part of this comment(// may be intsntiated to a variable name, thus more closely approximating the) comment(// behaviour of true named parameters) -pre_type(function) ident(the_func)operator(()local_variable($var_array)operator(\)) +reserved(function) ident(the_func)operator(()local_variable($var_array)operator(\)) operator({) - ident(extract)operator(()local_variable($var_array)operator(\))operator(;) + predefined(extract)operator(()local_variable($var_array)operator(\))operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($name)operator(\))operator(\)) ident(printf)operator(()delimiter(")string(Name: %s)char(\\n)delimiter(")operator(,) local_variable($name)operator(\))operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($age)operator(\))operator(\)) ident(printf)operator(()delimiter(")string(Age: %s)char(\\n)delimiter(")operator(,) local_variable($age)operator(\))operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($income)operator(\))operator(\)) ident(printf)operator(()delimiter(")string(Income: %s)char(\\n)delimiter(")operator(,) local_variable($income)operator(\))operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($name)operator(\))operator(\)) predefined(printf)operator(()string<delimiter(")content(Name: %s)char(\\n)delimiter(")>operator(,) local_variable($name)operator(\))operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($age)operator(\))operator(\)) predefined(printf)operator(()string<delimiter(")content(Age: %s)char(\\n)delimiter(")>operator(,) local_variable($age)operator(\))operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($income)operator(\))operator(\)) predefined(printf)operator(()string<delimiter(")content(Income: %s)char(\\n)delimiter(")>operator(,) local_variable($income)operator(\))operator(;) operator(}) comment(// ----) -ident(the_func)operator(()pre_type(array)operator(()delimiter(')string(name)delimiter(') operator(=>) delimiter(')string(Bob)delimiter(')operator(,) delimiter(')string(age)delimiter(') operator(=>) integer(36)operator(,) delimiter(')string(income)delimiter(') operator(=>) integer(51000)operator(\))operator(\))operator(;) +ident(the_func)operator(()predefined(array)operator(()string<delimiter(')content(name)delimiter(')> operator(=>) string<delimiter(')content(Bob)delimiter(')>operator(,) string<delimiter(')content(age)delimiter(')> operator(=>) integer(36)operator(,) string<delimiter(')content(income)delimiter(')> operator(=>) integer(51000)operator(\))operator(\))operator(;) comment(// ----------------------------) -pre_type(class) constant(RaceTime) +reserved(class) constant(RaceTime) operator({) - pre_type(public) local_variable($time)operator(,) local_variable($dim)operator(;) - pre_type(public) pre_type(function) ident(__construct)operator(()local_variable($time)operator(,) local_variable($dim)operator(\)) operator({) local_variable($this)operator(->)ident(time) operator(=) local_variable($time)operator(;) local_variable($this)operator(->)ident(dim) operator(=) local_variable($dim)operator(;) operator(}) + reserved(public) local_variable($time)operator(,) local_variable($dim)operator(;) + reserved(public) reserved(function) ident(__construct)operator(()local_variable($time)operator(,) local_variable($dim)operator(\)) operator({) local_variable($this)operator(->)predefined(time) operator(=) local_variable($time)operator(;) local_variable($this)operator(->)ident(dim) operator(=) local_variable($dim)operator(;) operator(}) operator(}) -pre_type(function) ident(the_func)operator(()local_variable($var_array)operator(\)) +reserved(function) ident(the_func)operator(()local_variable($var_array)operator(\)) operator({) - ident(extract)operator(()local_variable($var_array)operator(\))operator(;) + predefined(extract)operator(()local_variable($var_array)operator(\))operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($start_time)operator(\))operator(\)) ident(printf)operator(()delimiter(")string(start: %d - %s)char(\\n)delimiter(")operator(,) local_variable($start_time)operator(->)ident(time)operator(,) local_variable($start_time)operator(->)ident(dim)operator(\))operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($finish_time)operator(\))operator(\)) ident(printf)operator(()delimiter(")string(finish: %d - %s)char(\\n)delimiter(")operator(,) local_variable($finish_time)operator(->)ident(time)operator(,) local_variable($finish_time)operator(->)ident(dim)operator(\))operator(;) - reserved(if) operator(()pre_type(isset)operator(()local_variable($incr_time)operator(\))operator(\)) ident(printf)operator(()delimiter(")string(incr: %d - %s)char(\\n)delimiter(")operator(,) local_variable($incr_time)operator(->)ident(time)operator(,) local_variable($incr_time)operator(->)ident(dim)operator(\))operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($start_time)operator(\))operator(\)) predefined(printf)operator(()string<delimiter(")content(start: %d - %s)char(\\n)delimiter(")>operator(,) local_variable($start_time)operator(->)predefined(time)operator(,) local_variable($start_time)operator(->)ident(dim)operator(\))operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($finish_time)operator(\))operator(\)) predefined(printf)operator(()string<delimiter(")content(finish: %d - %s)char(\\n)delimiter(")>operator(,) local_variable($finish_time)operator(->)predefined(time)operator(,) local_variable($finish_time)operator(->)ident(dim)operator(\))operator(;) + reserved(if) operator(()predefined(isset)operator(()local_variable($incr_time)operator(\))operator(\)) predefined(printf)operator(()string<delimiter(")content(incr: %d - %s)char(\\n)delimiter(")>operator(,) local_variable($incr_time)operator(->)predefined(time)operator(,) local_variable($incr_time)operator(->)ident(dim)operator(\))operator(;) operator(}) comment(// ----) -ident(the_func)operator(()pre_type(array)operator(()delimiter(')string(start_time)delimiter(') operator(=>) pre_type(new) constant(RaceTime)operator(()integer(20)operator(,) delimiter(')string(s)delimiter(')operator(\))operator(,) - delimiter(')string(finish_time)delimiter(') operator(=>) pre_type(new) constant(RaceTime)operator(()integer(5)operator(,) delimiter(')string(m)delimiter(')operator(\))operator(,) - delimiter(')string(incr_time)delimiter(') operator(=>) pre_type(new) constant(RaceTime)operator(()integer(3)operator(,) delimiter(')string(m)delimiter(')operator(\))operator(\))operator(\))operator(;) +ident(the_func)operator(()predefined(array)operator(()string<delimiter(')content(start_time)delimiter(')> operator(=>) reserved(new) constant(RaceTime)operator(()integer(20)operator(,) string<delimiter(')content(s)delimiter(')>operator(\))operator(,) + string<delimiter(')content(finish_time)delimiter(')> operator(=>) reserved(new) constant(RaceTime)operator(()integer(5)operator(,) string<delimiter(')content(m)delimiter(')>operator(\))operator(,) + string<delimiter(')content(incr_time)delimiter(')> operator(=>) reserved(new) constant(RaceTime)operator(()integer(3)operator(,) string<delimiter(')content(m)delimiter(')>operator(\))operator(\))operator(\))operator(;) -ident(the_func)operator(()pre_type(array)operator(()delimiter(')string(start_time)delimiter(') operator(=>) pre_type(new) constant(RaceTime)operator(()integer(5)operator(,) delimiter(')string(m)delimiter(')operator(\))operator(,) - delimiter(')string(finish_time)delimiter(') operator(=>) pre_type(new) constant(RaceTime)operator(()integer(30)operator(,) delimiter(')string(m)delimiter(')operator(\))operator(\))operator(\))operator(;) +ident(the_func)operator(()predefined(array)operator(()string<delimiter(')content(start_time)delimiter(')> operator(=>) reserved(new) constant(RaceTime)operator(()integer(5)operator(,) string<delimiter(')content(m)delimiter(')>operator(\))operator(,) + string<delimiter(')content(finish_time)delimiter(')> operator(=>) reserved(new) constant(RaceTime)operator(()integer(30)operator(,) string<delimiter(')content(m)delimiter(')>operator(\))operator(\))operator(\))operator(;) -ident(the_func)operator(()pre_type(array)operator(()delimiter(')string(start_time)delimiter(') operator(=>) pre_type(new) constant(RaceTime)operator(()integer(30)operator(,) delimiter(')string(m)delimiter(')operator(\))operator(\))operator(\))operator(;) +ident(the_func)operator(()predefined(array)operator(()string<delimiter(')content(start_time)delimiter(')> operator(=>) reserved(new) constant(RaceTime)operator(()integer(30)operator(,) string<delimiter(')content(m)delimiter(')>operator(\))operator(\))operator(\))operator(;) comment(// @@PLEAC@@_10.8) comment(// The 'list' keyword [looks like a function but is actually a special language) @@ -4275,46 +4275,46 @@ comment(// construct] may be used to perform multiple assignments from a numeric comment(// indexed array of values, and offers the added bonus of being able to skip) comment(// assignment of one, or more, of those values) -pre_type(function) ident(func)operator(()operator(\)) operator({) reserved(return) pre_type(array)operator(()integer(3)operator(,) integer(6)operator(,) integer(9)operator(\))operator(;) operator(}) +reserved(function) ident(func)operator(()operator(\)) operator({) predefined(return) predefined(array)operator(()integer(3)operator(,) integer(6)operator(,) integer(9)operator(\))operator(;) operator(}) comment(// ------------) -pre_type(list)operator(()local_variable($a)operator(,) local_variable($b)operator(,) local_variable($c)operator(\)) operator(=) pre_type(array)operator(()integer(6)operator(,) integer(7)operator(,) integer(8)operator(\))operator(;) +predefined(list)operator(()local_variable($a)operator(,) local_variable($b)operator(,) local_variable($c)operator(\)) operator(=) predefined(array)operator(()integer(6)operator(,) integer(7)operator(,) integer(8)operator(\))operator(;) comment(// Provided 'func' returns an numerically-indexed array, the following) comment(// multiple assignment will work) -pre_type(list)operator(()local_variable($a)operator(,) local_variable($b)operator(,) local_variable($c)operator(\)) operator(=) ident(func)operator(()operator(\))operator(;) +predefined(list)operator(()local_variable($a)operator(,) local_variable($b)operator(,) local_variable($c)operator(\)) operator(=) ident(func)operator(()operator(\))operator(;) comment(// Any existing variables no longer wanted would need to be 'unset') -pre_type(unset)operator(()local_variable($b)operator(\))operator(;) +predefined(unset)operator(()local_variable($b)operator(\))operator(;) comment(// As above, but second element of return array discarded) -pre_type(list)operator(()local_variable($a)operator(,)operator(,)local_variable($c)operator(\)) operator(=) ident(func)operator(()operator(\))operator(;) +predefined(list)operator(()local_variable($a)operator(,)operator(,)local_variable($c)operator(\)) operator(=) ident(func)operator(()operator(\))operator(;) comment(// ----------------------------) comment(// Care needed to ensure returned array is numerically-indexed) -pre_type(list)operator(()local_variable($dev)operator(,) local_variable($ino)operator(,)operator(,)operator(,)local_variable($uid)operator(\)) operator(=) ident(array_slice)operator(()ident(array_values)operator(()ident(stat)operator(()local_variable($filename)operator(\))operator(\))operator(,) integer(0)operator(,) integer(13)operator(\))operator(;) +predefined(list)operator(()local_variable($dev)operator(,) local_variable($ino)operator(,)operator(,)operator(,)local_variable($uid)operator(\)) operator(=) predefined(array_slice)operator(()predefined(array_values)operator(()predefined(stat)operator(()local_variable($filename)operator(\))operator(\))operator(,) integer(0)operator(,) integer(13)operator(\))operator(;) comment(// @@PLEAC@@_10.9) comment(// Multiple return values are possible via packing a set of values within a) comment(// numerically-indexed array and using 'list' to extract them) -pre_type(function) ident(some_func)operator(()operator(\)) operator({) reserved(return) pre_type(array)operator(()pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(,) pre_type(array)operator(()delimiter(')string(a)delimiter(') operator(=>) integer(1)operator(,) delimiter(')string(b)delimiter(') operator(=>) integer(2)operator(\))operator(\))operator(;) operator(}) +reserved(function) ident(some_func)operator(()operator(\)) operator({) predefined(return) predefined(array)operator(()predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(,) predefined(array)operator(()string<delimiter(')content(a)delimiter(')> operator(=>) integer(1)operator(,) string<delimiter(')content(b)delimiter(')> operator(=>) integer(2)operator(\))operator(\))operator(;) operator(}) comment(// ------------) -pre_type(list)operator(()local_variable($arr)operator(,) local_variable($hash)operator(\)) operator(=) ident(some_func)operator(()operator(\))operator(;) +predefined(list)operator(()local_variable($arr)operator(,) local_variable($hash)operator(\)) operator(=) ident(some_func)operator(()operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(some_func)operator(()operator(&)local_variable($arr)operator(,) operator(&)local_variable($hash)operator(\)) operator({) reserved(return) pre_type(array)operator(()local_variable($arr)operator(,) local_variable($hash)operator(\))operator(;) operator(}) +reserved(function) ident(some_func)operator(()operator(&)local_variable($arr)operator(,) operator(&)local_variable($hash)operator(\)) operator({) predefined(return) predefined(array)operator(()local_variable($arr)operator(,) local_variable($hash)operator(\))operator(;) operator(}) comment(// ------------) -local_variable($arrin) operator(=) pre_type(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) local_variable($hashin) operator(=) pre_type(array)operator(()delimiter(')string(a)delimiter(') operator(=>) integer(1)operator(,) delimiter(')string(b)delimiter(') operator(=>) integer(2)operator(\))operator(;) +local_variable($arrin) operator(=) predefined(array)operator(()integer(1)operator(,) integer(2)operator(,) integer(3)operator(\))operator(;) local_variable($hashin) operator(=) predefined(array)operator(()string<delimiter(')content(a)delimiter(')> operator(=>) integer(1)operator(,) string<delimiter(')content(b)delimiter(')> operator(=>) integer(2)operator(\))operator(;) -pre_type(list)operator(()local_variable($arr)operator(,) local_variable($hash)operator(\)) operator(=) ident(some_func)operator(()local_variable($arrin)operator(,) local_variable($hashin)operator(\))operator(;) +predefined(list)operator(()local_variable($arr)operator(,) local_variable($hash)operator(\)) operator(=) ident(some_func)operator(()local_variable($arrin)operator(,) local_variable($hashin)operator(\))operator(;) comment(// @@PLEAC@@_10.10) comment(// AFAICT, most of the PHP library functions are designed to return some required ) @@ -4322,11 +4322,11 @@ comment(// value on success, and FALSE on exit. Whilst it is possible to return comment(// one of the recognised 'empty' values [e.g. '' or 0 or an empty array etc],) comment(// FALSE actually seems to be the preferred means of indicating failure) -pre_type(function) ident(a_func)operator(()operator(\)) operator({) reserved(return) constant(FALSE)operator(;) operator(}) +reserved(function) ident(a_func)operator(()operator(\)) operator({) predefined(return) reserved(FALSE)operator(;) operator(}) -ident(a_func)operator(()operator(\)) operator(|)operator(|) reserved(die)operator(()delimiter(")string(Function failed)char(\\n)delimiter(")operator(\))operator(;) +ident(a_func)operator(()operator(\)) operator(|)operator(|) predefined(die)operator(()string<delimiter(")content(Function failed)char(\\n)delimiter(")>operator(\))operator(;) -reserved(if) operator(()operator(!)ident(a_func)operator(()operator(\))operator(\)) reserved(die)operator(()delimiter(")string(Function failed)char(\\n)delimiter(")operator(\))operator(;) +reserved(if) operator(()operator(!)ident(a_func)operator(()operator(\))operator(\)) predefined(die)operator(()string<delimiter(")content(Function failed)char(\\n)delimiter(")>operator(\))operator(;) comment(// @@PLEAC@@_10.11) comment(// Whether PHP is seen to support prototyping depends on the accepted) @@ -4344,30 +4344,30 @@ comment(// positional order, and optionally, whether a parameter is passed by) comment(// reference; no type information is present]. In short, prototyping in) comment(// PHP is optional, and limited) -pre_type(function) ident(func_with_one_arg)operator(()local_variable($arg1)operator(\)) +reserved(function) ident(func_with_one_arg)operator(()local_variable($arg1)operator(\)) operator({) operator(;) comment(// ...) operator(}) -pre_type(function) ident(func_with_two_arg)operator(()local_variable($arg1)operator(,) local_variable($arg2)operator(\)) +reserved(function) ident(func_with_two_arg)operator(()local_variable($arg1)operator(,) local_variable($arg2)operator(\)) operator({) operator(;) comment(// ...) operator(}) -pre_type(function) ident(func_with_three_arg)operator(()local_variable($arg1)operator(,) local_variable($arg2)operator(,) local_variable($arg3)operator(\)) +reserved(function) ident(func_with_three_arg)operator(()local_variable($arg1)operator(,) local_variable($arg2)operator(,) local_variable($arg3)operator(\)) operator({) operator(;) comment(// ...) operator(}) comment(// The following may be interpreted as meaning a function accepting no) comment(// arguments:) -pre_type(function) ident(func_with_no_arg)operator(()operator(\)) +reserved(function) ident(func_with_no_arg)operator(()operator(\)) operator({) operator(;) comment(// ...) operator(}) comment(// whilst the following may mean a function taking zero or more arguments) -pre_type(function) ident(func_with_no_arg_information)operator(()operator(\)) +reserved(function) ident(func_with_no_arg_information)operator(()operator(\)) operator({) operator(;) comment(// ...) operator(}) @@ -4378,7 +4378,7 @@ comment(// an exception, but instead terminates the script, optionally either) comment(// returning an integer value to the operating system, or printing a message.) comment(// So, the following, does not exhibit the same behaviour as the Perl example) -reserved(die)operator(()delimiter(")string(some message)char(\\n)delimiter(")operator(\))operator(;) +predefined(die)operator(()string<delimiter(")content(some message)char(\\n)delimiter(")>operator(\))operator(;) comment(// Instead, like so many modern languages, PHP implements exception handling) comment(// via the 'catch' and 'throw' keywords. Furthermore, a C++ or Java programmer) @@ -4387,7 +4387,7 @@ comment(// of their respective languages. A simple, canonical example follows:) comment(// Usual to derive new exception classes from the built-in, 'Exception',) comment(// class) -pre_type(class) constant(MyException) pre_type(extends) constant(Exception) +reserved(class) constant(MyException) reserved(extends) constant(Exception) operator({) comment(// ...) operator(}) @@ -4397,7 +4397,7 @@ comment(// ...) reserved(try) operator({) comment(// ...) - reserved(if) operator(()local_variable($some_problem_detected)operator(\)) reserved(throw) pre_type(new) constant(MyException)operator(()delimiter(')string(some message)delimiter(')operator(,) local_variable($some_error_code)operator(\))operator(;) + reserved(if) operator(()local_variable($some_problem_detected)operator(\)) reserved(throw) reserved(new) constant(MyException)operator(()string<delimiter(')content(some message)delimiter(')>operator(,) local_variable($some_error_code)operator(\))operator(;) comment(// ..) operator(}) @@ -4408,7 +4408,7 @@ operator(}) comment(// ----------------------------) -pre_type(class) constant(FullMoonException) pre_type(extends) constant(Exception) +reserved(class) constant(FullMoonException) reserved(extends) constant(Exception) operator({) comment(// ...) operator(}) @@ -4418,7 +4418,7 @@ comment(// ...) reserved(try) operator({) comment(// ...) - reserved(if) operator(()local_variable($some_problem_detected)operator(\)) reserved(throw) pre_type(new) constant(FullMoonException)operator(()delimiter(')string(...)delimiter(')operator(,) local_variable($full_moon_error_code)operator(\))operator(;) + reserved(if) operator(()local_variable($some_problem_detected)operator(\)) reserved(throw) reserved(new) constant(FullMoonException)operator(()string<delimiter(')content(...)delimiter(')>operator(,) local_variable($full_moon_error_code)operator(\))operator(;) comment(// ..) operator(}) @@ -4456,13 +4456,13 @@ comment(// then just assign the function name to a variable, and execute using t comment(// variable name) comment(// Original function) -pre_type(function) ident(expand)operator(()operator(\)) operator({) pre_type(echo) delimiter(")string(expand)char(\\n)delimiter(")operator(;) operator(}) +reserved(function) ident(expand)operator(()operator(\)) operator({) predefined(echo) string<delimiter(")content(expand)char(\\n)delimiter(")>operator(;) operator(}) comment(// Prove that function exists) -pre_type(echo) operator(()ident(function_exists)operator(()delimiter(')string(expand)delimiter(')operator(\)) operator(?) delimiter(')string(yes)delimiter(') operator(:) delimiter(')string(no)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) operator(()predefined(function_exists)operator(()string<delimiter(')content(expand)delimiter(')>operator(\)) operator(?) string<delimiter(')content(yes)delimiter(')> operator(:) string<delimiter(')content(no)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// Use a variable to alias it) -local_variable($grow) operator(=) delimiter(')string(expand)delimiter(')operator(;) +local_variable($grow) operator(=) string<delimiter(')content(expand)delimiter(')>operator(;) comment(// Call function via original name, and variable, respectively) ident(expand)operator(()operator(\))operator(;) @@ -4470,87 +4470,87 @@ ident(expand)operator(()operator(\))operator(;) local_variable($grow)operator(()operator(\))operator(;) comment(// Remove alias variable) -pre_type(unset)operator(()local_variable($grow)operator(\))operator(;) +predefined(unset)operator(()local_variable($grow)operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(fred)operator(()operator(\)) operator({) pre_type(echo) delimiter(")string(fred)char(\\n)delimiter(")operator(;) operator(}) +reserved(function) ident(fred)operator(()operator(\)) operator({) predefined(echo) string<delimiter(")content(fred)char(\\n)delimiter(")>operator(;) operator(}) -local_variable($barney) operator(=) delimiter(')string(fred)delimiter(')operator(;) +local_variable($barney) operator(=) string<delimiter(')content(fred)delimiter(')>operator(;) local_variable($barney)operator(()operator(\))operator(;) -pre_type(unset)operator(()local_variable($barney)operator(\))operator(;) +predefined(unset)operator(()local_variable($barney)operator(\))operator(;) ident(fred)operator(()operator(\))operator(;) comment(// ------------) -local_variable($fred) operator(=) ident(create_function)operator(()delimiter(')delimiter(')operator(,) delimiter(')string(echo "fred)string(\\)string(n";)delimiter(')operator(\))operator(;) +local_variable($fred) operator(=) ident(create_function)operator(()string<delimiter(')delimiter(')>operator(,) string<delimiter(')content(echo "fred)content(\\n)content(";)delimiter(')>operator(\))operator(;) local_variable($barney) operator(=) local_variable($fred)operator(;) local_variable($barney)operator(()operator(\))operator(;) -pre_type(unset)operator(()local_variable($barney)operator(\))operator(;) +predefined(unset)operator(()local_variable($barney)operator(\))operator(;) local_variable($fred)operator(()operator(\))operator(;) comment(// ----------------------------) -pre_type(function) ident(red)operator(()local_variable($text)operator(\)) operator({) reserved(return) delimiter(")string(<FONT COLOR='red'>)local_variable($text)string(</FONT>)delimiter(")operator(;) operator(}) +reserved(function) ident(red)operator(()local_variable($text)operator(\)) operator({) predefined(return) string<delimiter(")content(<FONT COLOR='red'>)local_variable($text)content(</FONT>)delimiter(")>operator(;) operator(}) -pre_type(echo) ident(red)operator(()delimiter(')string(careful here)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) ident(red)operator(()string<delimiter(')content(careful here)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) comment(// ------------) -local_variable($colour) operator(=) delimiter(')string(red)delimiter(')operator(;) +local_variable($colour) operator(=) string<delimiter(')content(red)delimiter(')>operator(;) -error($)local_variable($colour) operator(=) ident(create_function)operator(()delimiter(')string($text)delimiter(')operator(,) delimiter(')string(global $colour;) -string(return "<FONT COLOR=)char(\\')string($colour)char(\\')string(>$text</FONT>";)delimiter(')operator(\))operator(;) +error($)local_variable($colour) operator(=) ident(create_function)operator(()string<delimiter(')content($text)delimiter(')>operator(,) string<delimiter(')content(global $colour; +return "<FONT COLOR=)content(\\')content($colour)content(\\')content(>$text</FONT>";)delimiter(')>operator(\))operator(;) -pre_type(echo) error($)local_variable($colour)operator(()delimiter(')string(careful here)delimiter(')operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) +predefined(echo) error($)local_variable($colour)operator(()string<delimiter(')content(careful here)delimiter(')>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) -pre_type(unset)operator(()error($)local_variable($colour)operator(\))operator(;) +predefined(unset)operator(()error($)local_variable($colour)operator(\))operator(;) comment(// ----) -local_variable($colours) operator(=) ident(split)operator(()delimiter(')string( )delimiter(')operator(,) delimiter(')string(red blue green yellow orange purple violet)delimiter(')operator(\))operator(;) +local_variable($colours) operator(=) predefined(split)operator(()string<delimiter(')content( )delimiter(')>operator(,) string<delimiter(')content(red blue green yellow orange purple violet)delimiter(')>operator(\))operator(;) reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) - error($)local_variable($colour) operator(=) ident(create_function)operator(()delimiter(')string($text)delimiter(')operator(,) delimiter(')string(global $colour;) - string(return "<FONT COLOR=)char(\\')string($colour)char(\\')string(>$text</FONT>";)delimiter(')operator(\))operator(;) + error($)local_variable($colour) operator(=) ident(create_function)operator(()string<delimiter(')content($text)delimiter(')>operator(,) string<delimiter(')content(global $colour; + return "<FONT COLOR=)content(\\')content($colour)content(\\')content(>$text</FONT>";)delimiter(')>operator(\))operator(;) operator(}) -reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) pre_type(echo) error($)local_variable($colour)operator(()delimiter(")string(Careful with this )local_variable($colour)string(, James)delimiter(")operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) operator(}) +reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) predefined(echo) error($)local_variable($colour)operator(()string<delimiter(")content(Careful with this )local_variable($colour)content(, James)delimiter(")>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) -reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) pre_type(unset)operator(()error($)local_variable($colour)operator(\))operator(;) operator(}) +reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) predefined(unset)operator(()error($)local_variable($colour)operator(\))operator(;) operator(}) comment(// @@PLEAC@@_10.15) comment(// PHP sports an AUTOLOAD facility that is quite easy to use, but, AFAICT, is geared) comment(// towards the detection of unavailable classes rather than for individual functions.) comment(// Here is a rudimentary example:) -pre_type(function) ident(__autoload)operator(()local_variable($classname)operator(\)) +reserved(function) ident(__autoload)operator(()local_variable($classname)operator(\)) operator({) - reserved(if) operator(()operator(!)ident(file_exists)operator(()local_variable($classname)operator(\))operator(\)) + reserved(if) operator(()operator(!)predefined(file_exists)operator(()local_variable($classname)operator(\))operator(\)) operator({) comment(// Class file does not exist, so handle situation; in this case,) comment(// issue error message, and exit program) - reserved(die)operator(()delimiter(")string(File for class: )operator({)local_variable($classname)operator(})string( not found - aborting)char(\\n)delimiter(")operator(\))operator(;) + predefined(die)operator(()string<delimiter(")content(File for class: )operator({)local_variable($classname)operator(})content( not found - aborting)char(\\n)delimiter(")>operator(\))operator(;) operator(}) reserved(else) operator({) comment(// Class file exists, so load it) - pre_type(require_once) local_variable($classname)operator(;) + predefined(require_once) local_variable($classname)operator(;) operator(}) operator(}) comment(// ------------) comment(// Attempt to instantiate object of undefined class ) -pre_type(new) constant(UnknownClassObject)operator(()operator(\))operator(;) +reserved(new) constant(UnknownClassObject)operator(()operator(\))operator(;) comment(// Execution continues here if class exists) comment(// ...) @@ -4563,34 +4563,34 @@ comment(// executing it, thus allowing a non-existent functions to be searched f comment(// loaded from a source file, or perhaps dynamically defined. An example of what) comment(// could be described as a custom autoload facility appears below.) -local_variable($colours) operator(=) pre_type(array)operator(()delimiter(')string(red)delimiter(')operator(,) delimiter(')string(blue)delimiter(')operator(,) delimiter(')string(green)delimiter(')operator(,) delimiter(')string(yellow)delimiter(')operator(,) delimiter(')string(orange)delimiter(')operator(,) delimiter(')string(purple)delimiter(')operator(,) delimiter(')string(violet)delimiter(')operator(\))operator(;) +local_variable($colours) operator(=) predefined(array)operator(()string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(blue)delimiter(')>operator(,) string<delimiter(')content(green)delimiter(')>operator(,) string<delimiter(')content(yellow)delimiter(')>operator(,) string<delimiter(')content(orange)delimiter(')>operator(,) string<delimiter(')content(purple)delimiter(')>operator(,) string<delimiter(')content(violet)delimiter(')>operator(\))operator(;) reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) - error($)local_variable($colour) operator(=) ident(create_function)operator(()delimiter(')string($text)delimiter(')operator(,) delimiter(')string(global $colour;) - string(return "<FONT COLOR=)char(\\')string($colour)char(\\')string(>$text</FONT>";)delimiter(')operator(\))operator(;) + error($)local_variable($colour) operator(=) ident(create_function)operator(()string<delimiter(')content($text)delimiter(')>operator(,) string<delimiter(')content(global $colour; + return "<FONT COLOR=)content(\\')content($colour)content(\\')content(>$text</FONT>";)delimiter(')>operator(\))operator(;) operator(}) comment(// Let's add a new colour to the list) -ident(array_push)operator(()local_variable($colours)operator(,) delimiter(')string(chartreuse)delimiter(')operator(\))operator(;) +predefined(array_push)operator(()local_variable($colours)operator(,) string<delimiter(')content(chartreuse)delimiter(')>operator(\))operator(;) reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) operator({) comment(// Checking whether function is defined) - reserved(if) operator(()operator(!)ident(function_exists)operator(()error($)local_variable($colour)operator(\))operator(\)) + reserved(if) operator(()operator(!)predefined(function_exists)operator(()error($)local_variable($colour)operator(\))operator(\)) operator({) comment(// Doesn't exist, so dynamically define it) - error($)local_variable($colour) operator(=) ident(create_function)operator(()delimiter(')string($text)delimiter(')operator(,) delimiter(')string(global $colour;) - string(return "<FONT COLOR=)char(\\')string($colour)char(\\')string(>$text</FONT>";)delimiter(')operator(\))operator(;) + error($)local_variable($colour) operator(=) ident(create_function)operator(()string<delimiter(')content($text)delimiter(')>operator(,) string<delimiter(')content(global $colour; + return "<FONT COLOR=)content(\\')content($colour)content(\\')content(>$text</FONT>";)delimiter(')>operator(\))operator(;) comment(// Alternatively, if it exists in a source file, 'include' the file:) comment(// include 'newcolours.php') operator(}) - pre_type(echo) error($)local_variable($colour)operator(()delimiter(")string(Careful with this )local_variable($colour)string(, James)delimiter(")operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) + predefined(echo) error($)local_variable($colour)operator(()string<delimiter(")content(Careful with this )local_variable($colour)content(, James)delimiter(")>operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) operator(}) -reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) pre_type(unset)operator(()error($)local_variable($colour)operator(\))operator(;) +reserved(foreach) operator(()local_variable($colours) reserved(as) local_variable($colour)operator(\)) predefined(unset)operator(()error($)local_variable($colour)operator(\))operator(;) comment(// @@PLEAC@@_10.16) comment(// *** Warning *** Whilst PHP *does* allow functions to be defined within other) @@ -4604,40 +4604,40 @@ comment(// * Do not form a closure: the inner function is merely 'parked' within comment(// outer function, and has no implicit access to the outer function's variables) comment(// or other inner functions) -pre_type(function) ident(outer)operator(()local_variable($arg)operator(\)) +reserved(function) ident(outer)operator(()local_variable($arg)operator(\)) operator({) local_variable($x) operator(=) local_variable($arg) operator(+) integer(35)operator(;) - pre_type(function) ident(inner)operator(()operator(\)) operator({) reserved(return) local_variable($x) operator(*) integer(19)operator(;) operator(}) + reserved(function) ident(inner)operator(()operator(\)) operator({) predefined(return) local_variable($x) operator(*) integer(19)operator(;) operator(}) comment(// *** wrong *** 'inner' returns 0 * 19, not ($arg + 35\) * 19) - reserved(return) local_variable($x) operator(+) ident(inner)operator(()operator(\))operator(;) + predefined(return) local_variable($x) operator(+) ident(inner)operator(()operator(\))operator(;) operator(}) comment(// ----------------------------) -pre_type(function) ident(outer)operator(()local_variable($arg)operator(\)) +reserved(function) ident(outer)operator(()local_variable($arg)operator(\)) operator({) local_variable($x) operator(=) local_variable($arg) operator(+) integer(35)operator(;) comment(// No implicit access to outer function scope; any required data must be) comment(// explicity passed) - pre_type(function) ident(inner)operator(()local_variable($x)operator(\)) operator({) reserved(return) local_variable($x) operator(*) integer(19)operator(;) operator(}) + reserved(function) ident(inner)operator(()local_variable($x)operator(\)) operator({) predefined(return) local_variable($x) operator(*) integer(19)operator(;) operator(}) - reserved(return) local_variable($x) operator(+) ident(inner)operator(()local_variable($x)operator(\))operator(;) + predefined(return) local_variable($x) operator(+) ident(inner)operator(()local_variable($x)operator(\))operator(;) operator(}) comment(// ------------ ) comment(// Equivalent to previously-shown code) -pre_type(function) ident(inner)operator(()local_variable($x)operator(\)) +reserved(function) ident(inner)operator(()local_variable($x)operator(\)) operator({) - reserved(return) local_variable($x) operator(*) integer(19)operator(;) + predefined(return) local_variable($x) operator(*) integer(19)operator(;) operator(}) -pre_type(function) ident(outer)operator(()local_variable($arg)operator(\)) +reserved(function) ident(outer)operator(()local_variable($arg)operator(\)) operator({) local_variable($x) operator(=) local_variable($arg) operator(+) integer(35)operator(;) - reserved(return) local_variable($x) operator(+) ident(inner)operator(()local_variable($x)operator(\))operator(;) + predefined(return) local_variable($x) operator(+) ident(inner)operator(()local_variable($x)operator(\))operator(;) operator(}) comment(// @@PLEAC@@_10.17) @@ -4646,15 +4646,15 @@ comment(// @@INCOMPLETE@@) comment(// @@PLEAC@@_16.1) comment(// Run a command and return its results as a string.) -local_variable($output_string) operator(=) ident(shell_exec)operator(()delimiter(')string(program args)delimiter(')operator(\))operator(;) +local_variable($output_string) operator(=) predefined(shell_exec)operator(()string<delimiter(')content(program args)delimiter(')>operator(\))operator(;) comment(// Same as above, using backtick operator.) local_variable($output_string) operator(=) error(`)ident(program) ident(args)error(`)operator(;) comment(// Run a command and return its results as a list of strings,) comment(// one per line.) -local_variable($output_lines) operator(=) pre_type(array)operator(()operator(\))operator(;) -ident(exec)operator(()delimiter(')string(program args)delimiter(')operator(,) local_variable($output_lines)operator(\))operator(;) +local_variable($output_lines) operator(=) predefined(array)operator(()operator(\))operator(;) +predefined(exec)operator(()string<delimiter(')content(program args)delimiter(')>operator(,) local_variable($output_lines)operator(\))operator(;) comment(// -----------------------------) @@ -4663,43 +4663,43 @@ comment(// use pcntl_exec(\). However, there is no way to do redirection, so) comment(// you can't capture its output.) local_variable($pid) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) -reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) +reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($pid)operator(\)) operator({) ident(pcntl_waitpid)operator(()local_variable($pid)operator(,) local_variable($status)operator(\))operator(;) operator(}) reserved(else) operator({) comment(// Note that pcntl_exec(\) automatically prepends the program name) comment(// to the array of arguments; the program name cannot be spoofed.) - ident(pcntl_exec)operator(()local_variable($program)operator(,) pre_type(array)operator(()local_variable($arg1)operator(,) local_variable($arg2)operator(\))operator(\))operator(;) + ident(pcntl_exec)operator(()local_variable($program)operator(,) predefined(array)operator(()local_variable($arg1)operator(,) local_variable($arg2)operator(\))operator(\))operator(;) operator(}) comment(// @@PLEAC@@_16.2) comment(// Run a simple command and retrieve its result code.) -ident(exec)operator(()delimiter(")string(vi )local_variable($myfile)delimiter(")operator(,) local_variable($output)operator(,) local_variable($result_code)operator(\))operator(;) +predefined(exec)operator(()string<delimiter(")content(vi )local_variable($myfile)delimiter(")>operator(,) local_variable($output)operator(,) local_variable($result_code)operator(\))operator(;) comment(// -----------------------------) comment(// Use the shell to perform redirection.) -ident(exec)operator(()delimiter(')string(cmd1 args | cmd2 | cmd3 >outfile)delimiter(')operator(\))operator(;) -ident(exec)operator(()delimiter(')string(cmd args <infile >outfile 2>errfile)delimiter(')operator(\))operator(;) +predefined(exec)operator(()string<delimiter(')content(cmd1 args | cmd2 | cmd3 >outfile)delimiter(')>operator(\))operator(;) +predefined(exec)operator(()string<delimiter(')content(cmd args <infile >outfile 2>errfile)delimiter(')>operator(\))operator(;) comment(// -----------------------------) comment(// Run a command, handling its result code or signal.) local_variable($pid) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) -reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) +reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($pid)operator(\)) operator({) ident(pcntl_waitpid)operator(()local_variable($pid)operator(,) local_variable($status)operator(\))operator(;) reserved(if) operator(()ident(pcntl_wifexited)operator(()local_variable($status)operator(\))operator(\)) operator({) local_variable($status) operator(=) ident(pcntl_wexitstatus)operator(()local_variable($status)operator(\))operator(;) - pre_type(echo) delimiter(")string(program exited with status )local_variable($status)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(program exited with status )local_variable($status)char(\\n)delimiter(")>operator(;) operator(}) reserved(elseif) operator(()ident(pcntl_wifsignaled)operator(()local_variable($status)operator(\))operator(\)) operator({) local_variable($signal) operator(=) ident(pcntl_wtermsig)operator(()local_variable($status)operator(\))operator(;) - pre_type(echo) delimiter(")string(program killed by signal )local_variable($signal)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(program killed by signal )local_variable($signal)char(\\n)delimiter(")>operator(;) operator(}) reserved(elseif) operator(()ident(pcntl_wifstopped)operator(()local_variable($status)operator(\))operator(\)) operator({) local_variable($signal) operator(=) ident(pcntl_wstopsig)operator(()local_variable($status)operator(\))operator(;) - pre_type(echo) delimiter(")string(program stopped by signal )local_variable($signal)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(program stopped by signal )local_variable($signal)char(\\n)delimiter(")>operator(;) operator(}) operator(}) reserved(else) operator({) ident(pcntl_exec)operator(()local_variable($program)operator(,) local_variable($args)operator(\))operator(;) @@ -4709,20 +4709,20 @@ comment(// -----------------------------) comment(// Run a command while blocking interrupt signals.) local_variable($pid) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) -reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) +reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($pid)operator(\)) operator({) comment(// parent catches INT and berates user) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) - pre_type(function) ident(handle_sigint)operator(()local_variable($signal)operator(\)) operator({) - pre_type(echo) delimiter(")string(Tsk tsk, no process interruptus)char(\\n)delimiter(")operator(;) + reserved(function) ident(handle_sigint)operator(()local_variable($signal)operator(\)) operator({) + predefined(echo) string<delimiter(")content(Tsk tsk, no process interruptus)char(\\n)delimiter(")>operator(;) operator(}) - ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(handle_sigint)delimiter(')operator(\))operator(;) + ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(handle_sigint)delimiter(')>operator(\))operator(;) reserved(while) operator(()operator(!)ident(pcntl_waitpid)operator(()local_variable($pid)operator(,) local_variable($status)operator(,) constant(WNOHANG)operator(\))operator(\)) operator({)operator(}) operator(}) reserved(else) operator({) comment(// child ignores INT and does its thing) ident(pcntl_signal)operator(()constant(SIGINT)operator(,) constant(SIG_IGN)operator(\))operator(;) - ident(pcntl_exec)operator(()delimiter(')string(/bin/sleep)delimiter(')operator(,) pre_type(array)operator(()delimiter(')string(10)delimiter(')operator(\))operator(\))operator(;) + ident(pcntl_exec)operator(()string<delimiter(')content(/bin/sleep)delimiter(')>operator(,) predefined(array)operator(()string<delimiter(')content(10)delimiter(')>operator(\))operator(\))operator(;) operator(}) comment(// -----------------------------) @@ -4734,57 +4734,57 @@ comment(// a different name in the process table.) comment(// @@PLEAC@@_16.3) comment(// Transfer control to the shell to run another program.) -ident(pcntl_exec)operator(()delimiter(')string(/bin/sh)delimiter(')operator(,) pre_type(array)operator(()delimiter(')string(-c)delimiter(')operator(,) delimiter(')string(archive *.data)delimiter(')operator(\))operator(\))operator(;) +ident(pcntl_exec)operator(()string<delimiter(')content(/bin/sh)delimiter(')>operator(,) predefined(array)operator(()string<delimiter(')content(-c)delimiter(')>operator(,) string<delimiter(')content(archive *.data)delimiter(')>operator(\))operator(\))operator(;) comment(// Transfer control directly to another program.) -ident(pcntl_exec)operator(()delimiter(')string(/path/to/archive)delimiter(')operator(,) pre_type(array)operator(()delimiter(')string(accounting.data)delimiter(')operator(\))operator(\))operator(;) +ident(pcntl_exec)operator(()string<delimiter(')content(/path/to/archive)delimiter(')>operator(,) predefined(array)operator(()string<delimiter(')content(accounting.data)delimiter(')>operator(\))operator(\))operator(;) comment(// @@PLEAC@@_16.4) comment(// Handle each line in the output of a process.) -local_variable($readme) operator(=) ident(popen)operator(()delimiter(')string(program arguments)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(;) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($readme)operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($readme)operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(===) pre_type(false)operator(\)) reserved(break)operator(;) +local_variable($readme) operator(=) predefined(popen)operator(()string<delimiter(')content(program arguments)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(;) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($readme)operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($readme)operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(===) reserved(false)operator(\)) reserved(break)operator(;) comment(// ...) operator(}) -ident(pclose)operator(()local_variable($readme)operator(\))operator(;) +predefined(pclose)operator(()local_variable($readme)operator(\))operator(;) comment(// -----------------------------) comment(// Write to the input of a process.) -local_variable($writeme) operator(=) ident(popen)operator(()delimiter(')string(program arguments)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(;) -ident(fwrite)operator(()local_variable($writeme)operator(,) delimiter(')string(data)delimiter(')operator(\))operator(;) -ident(pclose)operator(()local_variable($writeme)operator(\))operator(;) +local_variable($writeme) operator(=) predefined(popen)operator(()string<delimiter(')content(program arguments)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(;) +predefined(fwrite)operator(()local_variable($writeme)operator(,) string<delimiter(')content(data)delimiter(')>operator(\))operator(;) +predefined(pclose)operator(()local_variable($writeme)operator(\))operator(;) comment(// -----------------------------) comment(// Wait for a process to complete.) -local_variable($f) operator(=) ident(popen)operator(()delimiter(')string(sleep 1000000)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(;) comment(// child goes to sleep) -ident(pclose)operator(()local_variable($f)operator(\))operator(;) comment(// and parent goes to lala land) +local_variable($f) operator(=) predefined(popen)operator(()string<delimiter(')content(sleep 1000000)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(;) comment(// child goes to sleep) +predefined(pclose)operator(()local_variable($f)operator(\))operator(;) comment(// and parent goes to lala land) comment(// -----------------------------) -local_variable($writeme) operator(=) ident(popen)operator(()delimiter(')string(program arguments)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(;) -ident(fwrite)operator(()local_variable($writeme)operator(,) delimiter(")string(hello)char(\\n)delimiter(")operator(\))operator(;) comment(// program will get hello\\n on STDIN) -ident(pclose)operator(()local_variable($writeme)operator(\))operator(;) comment(// program will get EOF on STDIN) +local_variable($writeme) operator(=) predefined(popen)operator(()string<delimiter(')content(program arguments)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(;) +predefined(fwrite)operator(()local_variable($writeme)operator(,) string<delimiter(")content(hello)char(\\n)delimiter(")>operator(\))operator(;) comment(// program will get hello\\n on STDIN) +predefined(pclose)operator(()local_variable($writeme)operator(\))operator(;) comment(// program will get EOF on STDIN) comment(// -----------------------------) comment(// Output buffering callback that sends output to the pager.) -pre_type(function) ident(ob_pager)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) - pre_type(static) local_variable($pipe)operator(;) +reserved(function) ident(ob_pager)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) + reserved(static) local_variable($pipe)operator(;) reserved(if) operator(()local_variable($mode) operator(&) constant(PHP_OUTPUT_HANDLER_START)operator(\)) operator({) - local_variable($pager) operator(=) ident(getenv)operator(()delimiter(')string(PAGER)delimiter(')operator(\))operator(;) - reserved(if) operator(()operator(!)local_variable($pager)operator(\)) local_variable($pager) operator(=) delimiter(')string(/usr/bin/less)delimiter(')operator(;) comment(// XXX: might not exist) - local_variable($pipe) operator(=) ident(popen)operator(()local_variable($pager)operator(,) delimiter(')string(w)delimiter(')operator(\))operator(;) + local_variable($pager) operator(=) predefined(getenv)operator(()string<delimiter(')content(PAGER)delimiter(')>operator(\))operator(;) + reserved(if) operator(()operator(!)local_variable($pager)operator(\)) local_variable($pager) operator(=) string<delimiter(')content(/usr/bin/less)delimiter(')>operator(;) comment(// XXX: might not exist) + local_variable($pipe) operator(=) predefined(popen)operator(()local_variable($pager)operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(;) operator(}) - ident(fwrite)operator(()local_variable($pipe)operator(,) local_variable($output)operator(\))operator(;) + predefined(fwrite)operator(()local_variable($pipe)operator(,) local_variable($output)operator(\))operator(;) reserved(if) operator(()local_variable($mode) operator(&) constant(PHP_OUTPUT_HANDLER_END)operator(\)) operator({) - ident(pclose)operator(()local_variable($pipe)operator(\))operator(;) + predefined(pclose)operator(()local_variable($pipe)operator(\))operator(;) operator(}) operator(}) comment(// Redirect standard output to the pager.) -ident(ob_start)operator(()delimiter(')string(ob_pager)delimiter(')operator(\))operator(;) +ident(ob_start)operator(()string<delimiter(')content(ob_pager)delimiter(')>operator(\))operator(;) comment(// Do something useful that writes to standard output, then) comment(// close the output buffer.) @@ -4793,78 +4793,78 @@ ident(ob_end_flush)operator(()operator(\))operator(;) comment(// @@PLEAC@@_16.5) comment(// Output buffering: Only display a certain number of lines of output.) -pre_type(class) constant(Head) operator({) - pre_type(function) constant(Head)operator(()local_variable($lines)operator(=)integer(20)operator(\)) operator({) +reserved(class) constant(Head) operator({) + reserved(function) constant(Head)operator(()local_variable($lines)operator(=)integer(20)operator(\)) operator({) local_variable($this)operator(->)ident(lines) operator(=) local_variable($lines)operator(;) operator(}) - pre_type(function) ident(filter)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) - local_variable($result) operator(=) pre_type(array)operator(()operator(\))operator(;) - local_variable($newline) operator(=) delimiter(')delimiter(')operator(;) - reserved(if) operator(()ident(strlen)operator(()local_variable($output)operator(\)) operator(>) integer(0) operator(&)operator(&) local_variable($output)operator([)ident(strlen)operator(()local_variable($output)operator(\)) operator(-) integer(1)operator(]) operator(==) delimiter(")char(\\n)delimiter(")operator(\)) operator({) - local_variable($newline) operator(=) delimiter(")char(\\n)delimiter(")operator(;) - local_variable($output) operator(=) ident(substr)operator(()local_variable($output)operator(,) integer(0)operator(,) integer(-1)operator(\))operator(;) + reserved(function) ident(filter)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) + local_variable($result) operator(=) predefined(array)operator(()operator(\))operator(;) + local_variable($newline) operator(=) string<delimiter(')delimiter(')>operator(;) + reserved(if) operator(()predefined(strlen)operator(()local_variable($output)operator(\)) operator(>) integer(0) operator(&)operator(&) local_variable($output)operator([)predefined(strlen)operator(()local_variable($output)operator(\)) operator(-) integer(1)operator(]) operator(==) string<delimiter(")char(\\n)delimiter(")>operator(\)) operator({) + local_variable($newline) operator(=) string<delimiter(")char(\\n)delimiter(")>operator(;) + local_variable($output) operator(=) predefined(substr)operator(()local_variable($output)operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(;) operator(}) - reserved(foreach) operator(()ident(explode)operator(()delimiter(")char(\\n)delimiter(")operator(,) local_variable($output)operator(\)) reserved(as) local_variable($i) operator(=>) local_variable($line)operator(\)) operator({) + reserved(foreach) operator(()predefined(explode)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) local_variable($output)operator(\)) reserved(as) local_variable($i) operator(=>) local_variable($line)operator(\)) operator({) reserved(if) operator(()local_variable($this)operator(->)ident(lines) operator(>) integer(0)operator(\)) operator({) local_variable($this)operator(->)ident(lines)operator(--)operator(;) local_variable($result)operator([)operator(]) operator(=) local_variable($line)operator(;) operator(}) operator(}) - reserved(return) local_variable($result) operator(?) ident(implode)operator(()delimiter(")char(\\n)delimiter(")operator(,) local_variable($result)operator(\)) operator(.) local_variable($newline) operator(:) delimiter(')delimiter(')operator(;) + predefined(return) local_variable($result) operator(?) predefined(implode)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) local_variable($result)operator(\)) operator(.) local_variable($newline) operator(:) string<delimiter(')delimiter(')>operator(;) operator(}) operator(}) comment(// Output buffering: Prepend line numbers to each line of output.) -pre_type(class) constant(Number) operator({) - pre_type(function) constant(Number)operator(()operator(\)) operator({) +reserved(class) constant(Number) operator({) + reserved(function) constant(Number)operator(()operator(\)) operator({) local_variable($this)operator(->)ident(line_number) operator(=) integer(0)operator(;) operator(}) - pre_type(function) ident(filter)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) - local_variable($result) operator(=) pre_type(array)operator(()operator(\))operator(;) - local_variable($newline) operator(=) delimiter(')delimiter(')operator(;) - reserved(if) operator(()ident(strlen)operator(()local_variable($output)operator(\)) operator(>) integer(0) operator(&)operator(&) local_variable($output)operator([)ident(strlen)operator(()local_variable($output)operator(\)) operator(-) integer(1)operator(]) operator(==) delimiter(")char(\\n)delimiter(")operator(\)) operator({) - local_variable($newline) operator(=) delimiter(")char(\\n)delimiter(")operator(;) - local_variable($output) operator(=) ident(substr)operator(()local_variable($output)operator(,) integer(0)operator(,) integer(-1)operator(\))operator(;) + reserved(function) ident(filter)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) + local_variable($result) operator(=) predefined(array)operator(()operator(\))operator(;) + local_variable($newline) operator(=) string<delimiter(')delimiter(')>operator(;) + reserved(if) operator(()predefined(strlen)operator(()local_variable($output)operator(\)) operator(>) integer(0) operator(&)operator(&) local_variable($output)operator([)predefined(strlen)operator(()local_variable($output)operator(\)) operator(-) integer(1)operator(]) operator(==) string<delimiter(")char(\\n)delimiter(")>operator(\)) operator({) + local_variable($newline) operator(=) string<delimiter(")char(\\n)delimiter(")>operator(;) + local_variable($output) operator(=) predefined(substr)operator(()local_variable($output)operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(;) operator(}) - reserved(foreach) operator(()ident(explode)operator(()delimiter(")char(\\n)delimiter(")operator(,) local_variable($output)operator(\)) reserved(as) local_variable($i) operator(=>) local_variable($line)operator(\)) operator({) + reserved(foreach) operator(()predefined(explode)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) local_variable($output)operator(\)) reserved(as) local_variable($i) operator(=>) local_variable($line)operator(\)) operator({) local_variable($this)operator(->)ident(line_number)operator(++)operator(;) - local_variable($result)operator([)operator(]) operator(=) local_variable($this)operator(->)ident(line_number) operator(.) delimiter(')string(: )delimiter(') operator(.) local_variable($line)operator(;) + local_variable($result)operator([)operator(]) operator(=) local_variable($this)operator(->)ident(line_number) operator(.) string<delimiter(')content(: )delimiter(')> operator(.) local_variable($line)operator(;) operator(}) - reserved(return) ident(implode)operator(()delimiter(")char(\\n)delimiter(")operator(,) local_variable($result)operator(\)) operator(.) local_variable($newline)operator(;) + predefined(return) predefined(implode)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) local_variable($result)operator(\)) operator(.) local_variable($newline)operator(;) operator(}) operator(}) comment(// Output buffering: Prepend "> " to each line of output.) -pre_type(class) constant(Quote) operator({) - pre_type(function) constant(Quote)operator(()operator(\)) operator({) +reserved(class) constant(Quote) operator({) + reserved(function) constant(Quote)operator(()operator(\)) operator({) operator(}) - pre_type(function) ident(filter)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) - local_variable($result) operator(=) pre_type(array)operator(()operator(\))operator(;) - local_variable($newline) operator(=) delimiter(')delimiter(')operator(;) - reserved(if) operator(()ident(strlen)operator(()local_variable($output)operator(\)) operator(>) integer(0) operator(&)operator(&) local_variable($output)operator([)ident(strlen)operator(()local_variable($output)operator(\)) operator(-) integer(1)operator(]) operator(==) delimiter(")char(\\n)delimiter(")operator(\)) operator({) - local_variable($newline) operator(=) delimiter(")char(\\n)delimiter(")operator(;) - local_variable($output) operator(=) ident(substr)operator(()local_variable($output)operator(,) integer(0)operator(,) integer(-1)operator(\))operator(;) + reserved(function) ident(filter)operator(()local_variable($output)operator(,) local_variable($mode)operator(\)) operator({) + local_variable($result) operator(=) predefined(array)operator(()operator(\))operator(;) + local_variable($newline) operator(=) string<delimiter(')delimiter(')>operator(;) + reserved(if) operator(()predefined(strlen)operator(()local_variable($output)operator(\)) operator(>) integer(0) operator(&)operator(&) local_variable($output)operator([)predefined(strlen)operator(()local_variable($output)operator(\)) operator(-) integer(1)operator(]) operator(==) string<delimiter(")char(\\n)delimiter(")>operator(\)) operator({) + local_variable($newline) operator(=) string<delimiter(")char(\\n)delimiter(")>operator(;) + local_variable($output) operator(=) predefined(substr)operator(()local_variable($output)operator(,) integer(0)operator(,) operator(-)integer(1)operator(\))operator(;) operator(}) - reserved(foreach) operator(()ident(explode)operator(()delimiter(")char(\\n)delimiter(")operator(,) local_variable($output)operator(\)) reserved(as) local_variable($i) operator(=>) local_variable($line)operator(\)) operator({) - local_variable($result)operator([)operator(]) operator(=) delimiter(")string(> )local_variable($line)delimiter(")operator(;) + reserved(foreach) operator(()predefined(explode)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) local_variable($output)operator(\)) reserved(as) local_variable($i) operator(=>) local_variable($line)operator(\)) operator({) + local_variable($result)operator([)operator(]) operator(=) string<delimiter(")content(> )local_variable($line)delimiter(")>operator(;) operator(}) - reserved(return) ident(implode)operator(()delimiter(")char(\\n)delimiter(")operator(,) local_variable($result)operator(\)) operator(.) local_variable($newline)operator(;) + predefined(return) predefined(implode)operator(()string<delimiter(")char(\\n)delimiter(")>operator(,) local_variable($result)operator(\)) operator(.) local_variable($newline)operator(;) operator(}) operator(}) comment(// Use arrays as callbacks to register filter methods.) -ident(ob_start)operator(()pre_type(array)operator(()pre_type(new) constant(Head)operator(()integer(100)operator(\))operator(,) delimiter(')string(filter)delimiter(')operator(\))operator(\))operator(;) -ident(ob_start)operator(()pre_type(array)operator(()pre_type(new) constant(Number)operator(()operator(\))operator(,) delimiter(')string(filter)delimiter(')operator(\))operator(\))operator(;) -ident(ob_start)operator(()pre_type(array)operator(()pre_type(new) constant(Quote)operator(()operator(\))operator(,) delimiter(')string(filter)delimiter(')operator(\))operator(\))operator(;) +ident(ob_start)operator(()predefined(array)operator(()reserved(new) constant(Head)operator(()integer(100)operator(\))operator(,) string<delimiter(')content(filter)delimiter(')>operator(\))operator(\))operator(;) +ident(ob_start)operator(()predefined(array)operator(()reserved(new) constant(Number)operator(()operator(\))operator(,) string<delimiter(')content(filter)delimiter(')>operator(\))operator(\))operator(;) +ident(ob_start)operator(()predefined(array)operator(()reserved(new) constant(Quote)operator(()operator(\))operator(,) string<delimiter(')content(filter)delimiter(')>operator(\))operator(\))operator(;) comment(// Act like /bin/cat.) -reserved(while) operator(()operator(!)ident(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()constant(STDIN)operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(===) pre_type(false)operator(\)) reserved(break)operator(;) - pre_type(echo) local_variable($line)operator(;) +reserved(while) operator(()operator(!)predefined(feof)operator(()constant(STDIN)operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()constant(STDIN)operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(===) reserved(false)operator(\)) reserved(break)operator(;) + predefined(echo) local_variable($line)operator(;) operator(}) comment(// Should match number of calls to ob_start(\).) @@ -4884,174 +4884,174 @@ comment(// - php://stdin) comment(//) comment(// See http://www.php.net/manual/en/wrappers.php for details.) comment(//) -local_variable($filenames) operator(=) ident(array_slice)operator(()local_variable($argv)operator(,) integer(1)operator(\))operator(;) -reserved(if) operator(()operator(!)local_variable($filenames)operator(\)) local_variable($filenames) operator(=) pre_type(array)operator(()delimiter(')string(php://stdin)delimiter(')operator(\))operator(;) +local_variable($filenames) operator(=) predefined(array_slice)operator(()local_variable($argv)operator(,) integer(1)operator(\))operator(;) +reserved(if) operator(()operator(!)local_variable($filenames)operator(\)) local_variable($filenames) operator(=) predefined(array)operator(()string<delimiter(')content(php://stdin)delimiter(')>operator(\))operator(;) reserved(foreach) operator(()local_variable($filenames) reserved(as) local_variable($filename)operator(\)) operator({) - local_variable($handle) operator(=) operator(@)ident(fopen)operator(()local_variable($filename)operator(,) delimiter(')string(r)delimiter(')operator(\))operator(;) + local_variable($handle) operator(=) operator(@)predefined(fopen)operator(()local_variable($filename)operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(;) reserved(if) operator(()local_variable($handle)operator(\)) operator({) - reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($handle)operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($handle)operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(===) pre_type(false)operator(\)) reserved(break)operator(;) + reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($handle)operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($handle)operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(===) reserved(false)operator(\)) reserved(break)operator(;) comment(// ...) operator(}) - ident(fclose)operator(()local_variable($handle)operator(\))operator(;) + predefined(fclose)operator(()local_variable($handle)operator(\))operator(;) operator(}) reserved(else) operator({) - reserved(die)operator(()delimiter(")string(can't open )local_variable($filename)char(\\n)delimiter(")operator(\))operator(;) + predefined(die)operator(()string<delimiter(")content(can't open )local_variable($filename)char(\\n)delimiter(")>operator(\))operator(;) operator(}) operator(}) comment(// @@PLEAC@@_16.7) local_variable($output) operator(=) error(`)ident(cmd) integer(2)operator(>)operator(&)integer(1)error(`)operator(;) comment(// with backticks) comment(// or) -local_variable($ph) operator(=) ident(popen)operator(()delimiter(')string(cmd 2>&1)delimiter(')operator(\))operator(;) comment(// with an open pipe) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) ident(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) +local_variable($ph) operator(=) predefined(popen)operator(()string<delimiter(')content(cmd 2>&1)delimiter(')>operator(\))operator(;) comment(// with an open pipe) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) predefined(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) comment(// -----------------------------) -local_variable($output) operator(=) error(`)ident(cmd) integer(2)operator(>)operator(/)ident(dev)operator(/)pre_type(null)error(`)operator(;) comment(// with backticks) +local_variable($output) operator(=) error(`)ident(cmd) integer(2)operator(>)operator(/)ident(dev)operator(/)reserved(null)error(`)operator(;) comment(// with backticks) comment(// or) -local_variable($ph) operator(=) ident(popen)operator(()delimiter(')string(cmd 2>/dev/null)delimiter(')operator(\))operator(;) comment(// with an open pipe) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) ident(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) +local_variable($ph) operator(=) predefined(popen)operator(()string<delimiter(')content(cmd 2>/dev/null)delimiter(')>operator(\))operator(;) comment(// with an open pipe) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) predefined(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) comment(// -----------------------------) -local_variable($output) operator(=) error(`)ident(cmd) integer(2)operator(>)operator(&)integer(1) integer(1)operator(>)operator(/)ident(dev)operator(/)pre_type(null)error(`)operator(;) comment(// with backticks) +local_variable($output) operator(=) error(`)ident(cmd) integer(2)operator(>)operator(&)integer(1) integer(1)operator(>)operator(/)ident(dev)operator(/)reserved(null)error(`)operator(;) comment(// with backticks) comment(// or) -local_variable($ph) operator(=) ident(popen)operator(()delimiter(')string(cmd 2>&1 1>/dev/null)delimiter(')operator(\))operator(;) comment(// with an open pipe) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) ident(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) +local_variable($ph) operator(=) predefined(popen)operator(()string<delimiter(')content(cmd 2>&1 1>/dev/null)delimiter(')>operator(\))operator(;) comment(// with an open pipe) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) predefined(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) comment(// -----------------------------) local_variable($output) operator(=) error(`)ident(cmd) integer(3)operator(>)operator(&)integer(1) integer(1)operator(>)operator(&)integer(2) integer(2)operator(>)operator(&)integer(3) integer(3)operator(>)operator(&)operator(-)error(`)operator(;) comment(// with backticks) comment(// or) -local_variable($ph) operator(=) ident(popen)operator(()delimiter(')string(cmd 3>&1 1>&2 2>&3 3>&-|)delimiter(')operator(\))operator(;) comment(// with an open pipe) -reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) ident(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) +local_variable($ph) operator(=) predefined(popen)operator(()string<delimiter(')content(cmd 3>&1 1>&2 2>&3 3>&-|)delimiter(')>operator(\))operator(;) comment(// with an open pipe) +reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($ph)operator(\))operator(\)) operator({) local_variable($line) operator(=) predefined(fgets)operator(()local_variable($ph)operator(\))operator(;) operator(}) comment(// plus a read) comment(// -----------------------------) -ident(exec)operator(()delimiter(')string(program args 1>/tmp/program.stdout 2>/tmp/program.stderr)delimiter(')operator(\))operator(;) +predefined(exec)operator(()string<delimiter(')content(program args 1>/tmp/program.stdout 2>/tmp/program.stderr)delimiter(')>operator(\))operator(;) comment(// -----------------------------) local_variable($output) operator(=) error(`)ident(cmd) integer(3)operator(>)operator(&)integer(1) integer(1)operator(>)operator(&)integer(2) integer(2)operator(>)operator(&)integer(3) integer(3)operator(>)operator(&)operator(-)error(`)operator(;) comment(// -----------------------------) local_variable($fd3) operator(=) local_variable($fd1)operator(;) local_variable($fd1) operator(=) local_variable($fd2)operator(;) local_variable($fd2) operator(=) local_variable($fd3)operator(;) -local_variable($fd3) operator(=) pre_type(null)operator(;) +local_variable($fd3) operator(=) reserved(null)operator(;) comment(// -----------------------------) -ident(exec)operator(()delimiter(')string(prog args 1>tmpfile 2>&1)delimiter(')operator(\))operator(;) -ident(exec)operator(()delimiter(')string(prog args 2>&1 1>tmpfile)delimiter(')operator(\))operator(;) +predefined(exec)operator(()string<delimiter(')content(prog args 1>tmpfile 2>&1)delimiter(')>operator(\))operator(;) +predefined(exec)operator(()string<delimiter(')content(prog args 2>&1 1>tmpfile)delimiter(')>operator(\))operator(;) comment(// -----------------------------) comment(// exec('prog args 1>tmpfile 2>&1'\);) -local_variable($fd1) operator(=) delimiter(")string(tmpfile)delimiter(")operator(;) comment(// change stdout destination first) +local_variable($fd1) operator(=) string<delimiter(")content(tmpfile)delimiter(")>operator(;) comment(// change stdout destination first) local_variable($fd2) operator(=) local_variable($fd1)operator(;) comment(// now point stderr there, too) comment(// -----------------------------) comment(// exec('prog args 2>&1 1>tmpfile'\);) local_variable($fd2) operator(=) local_variable($fd1)operator(;) comment(// stderr same destination as stdout) -local_variable($fd1) operator(=) delimiter(")string(tmpfile)delimiter(")operator(;) comment(// but change stdout destination) +local_variable($fd1) operator(=) string<delimiter(")content(tmpfile)delimiter(")>operator(;) comment(// but change stdout destination) comment(// @@PLEAC@@_16.8) comment(// Connect to input and output of a process.) local_variable($proc) operator(=) ident(proc_open)operator(()local_variable($program)operator(,) - pre_type(array)operator(()integer(0) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(,) - integer(1) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(\))operator(,) + predefined(array)operator(()integer(0) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(,) + integer(1) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(\))operator(,) local_variable($pipes)operator(\))operator(;) -reserved(if) operator(()ident(is_resource)operator(()local_variable($proc)operator(\))operator(\)) operator({) - ident(fwrite)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(,) delimiter(")string(here's your input)char(\\n)delimiter(")operator(\))operator(;) - ident(fclose)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(\))operator(;) - pre_type(echo) ident(stream_get_contents)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) - ident(fclose)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) +reserved(if) operator(()predefined(is_resource)operator(()local_variable($proc)operator(\))operator(\)) operator({) + predefined(fwrite)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(,) string<delimiter(")content(here's your input)char(\\n)delimiter(")>operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(\))operator(;) + predefined(echo) ident(stream_get_contents)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) local_variable($result_code) operator(=) ident(proc_close)operator(()local_variable($proc)operator(\))operator(;) - pre_type(echo) delimiter(")local_variable($result_code)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")local_variable($result_code)char(\\n)delimiter(")>operator(;) operator(}) comment(// -----------------------------) -local_variable($all) operator(=) pre_type(array)operator(()operator(\))operator(;) -local_variable($outlines) operator(=) pre_type(array)operator(()operator(\))operator(;) -local_variable($errlines) operator(=) pre_type(array)operator(()operator(\))operator(;) -ident(exec)operator(()delimiter(")string(( )local_variable($cmd)string( | sed -e 's/^/stdout: /' \) 2>&1)delimiter(")operator(,) local_variable($all)operator(\))operator(;) +local_variable($all) operator(=) predefined(array)operator(()operator(\))operator(;) +local_variable($outlines) operator(=) predefined(array)operator(()operator(\))operator(;) +local_variable($errlines) operator(=) predefined(array)operator(()operator(\))operator(;) +predefined(exec)operator(()string<delimiter(")content(( )local_variable($cmd)content( | sed -e 's/^/stdout: /' \) 2>&1)delimiter(")>operator(,) local_variable($all)operator(\))operator(;) reserved(foreach) operator(()local_variable($all) reserved(as) local_variable($line)operator(\)) operator({) - local_variable($pos) operator(=) ident(strpos)operator(()local_variable($line)operator(,) delimiter(')string(stdout: )delimiter(')operator(\))operator(;) - reserved(if) operator(()local_variable($pos) operator(!==) pre_type(false) operator(&)operator(&) local_variable($pos) operator(==) integer(0)operator(\)) operator({) - local_variable($outlines)operator([)operator(]) operator(=) ident(substr)operator(()local_variable($line)operator(,) integer(8)operator(\))operator(;) + local_variable($pos) operator(=) predefined(strpos)operator(()local_variable($line)operator(,) string<delimiter(')content(stdout: )delimiter(')>operator(\))operator(;) + reserved(if) operator(()local_variable($pos) operator(!==) reserved(false) operator(&)operator(&) local_variable($pos) operator(==) integer(0)operator(\)) operator({) + local_variable($outlines)operator([)operator(]) operator(=) predefined(substr)operator(()local_variable($line)operator(,) integer(8)operator(\))operator(;) operator(}) reserved(else) operator({) local_variable($errlines)operator([)operator(]) operator(=) local_variable($line)operator(;) operator(}) operator(}) -pre_type(print)operator(()delimiter(")string(STDOUT:)char(\\n)delimiter(")operator(\))operator(;) -ident(print_r)operator(()local_variable($outlines)operator(\))operator(;) -pre_type(print)operator(()delimiter(")char(\\n)delimiter(")operator(\))operator(;) -pre_type(print)operator(()delimiter(")string(STDERR:)char(\\n)delimiter(")operator(\))operator(;) -ident(print_r)operator(()local_variable($errlines)operator(\))operator(;) -pre_type(print)operator(()delimiter(")char(\\n)delimiter(")operator(\))operator(;) +predefined(print)operator(()string<delimiter(")content(STDOUT:)char(\\n)delimiter(")>operator(\))operator(;) +predefined(print_r)operator(()local_variable($outlines)operator(\))operator(;) +predefined(print)operator(()string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) +predefined(print)operator(()string<delimiter(")content(STDERR:)char(\\n)delimiter(")>operator(\))operator(;) +predefined(print_r)operator(()local_variable($errlines)operator(\))operator(;) +predefined(print)operator(()string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) comment(// @@PLEAC@@_16.9) local_variable($proc) operator(=) ident(proc_open)operator(()local_variable($cmd)operator(,) - pre_type(array)operator(()integer(0) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(,) - integer(1) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(,) - integer(2) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(\))operator(,) + predefined(array)operator(()integer(0) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(,) + integer(1) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(,) + integer(2) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(\))operator(,) local_variable($pipes)operator(\))operator(;) -reserved(if) operator(()ident(is_resource)operator(()local_variable($proc)operator(\))operator(\)) operator({) +reserved(if) operator(()predefined(is_resource)operator(()local_variable($proc)operator(\))operator(\)) operator({) comment(// give end of file to kid, or feed him) - ident(fclose)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(\))operator(;) comment(// read till EOF) - local_variable($outlines) operator(=) pre_type(array)operator(()operator(\))operator(;) - reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(===) pre_type(false)operator(\)) reserved(break)operator(;) - local_variable($outlines)operator([)operator(]) operator(=) ident(rtrim)operator(()local_variable($line)operator(\))operator(;) + local_variable($outlines) operator(=) predefined(array)operator(()operator(\))operator(;) + reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(===) reserved(false)operator(\)) reserved(break)operator(;) + local_variable($outlines)operator([)operator(]) operator(=) predefined(rtrim)operator(()local_variable($line)operator(\))operator(;) operator(}) comment(// XXX: block potential if massive) - local_variable($errlines) operator(=) pre_type(array)operator(()operator(\))operator(;) - reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(===) pre_type(false)operator(\)) reserved(break)operator(;) - local_variable($errlines)operator([)operator(]) operator(=) ident(rtrim)operator(()local_variable($line)operator(\))operator(;) + local_variable($errlines) operator(=) predefined(array)operator(()operator(\))operator(;) + reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(===) reserved(false)operator(\)) reserved(break)operator(;) + local_variable($errlines)operator([)operator(]) operator(=) predefined(rtrim)operator(()local_variable($line)operator(\))operator(;) operator(}) - ident(fclose)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) - ident(fclose)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) ident(proc_close)operator(()local_variable($proc)operator(\))operator(;) - pre_type(print)operator(()delimiter(")string(STDOUT:)char(\\n)delimiter(")operator(\))operator(;) - ident(print_r)operator(()local_variable($outlines)operator(\))operator(;) - pre_type(print)operator(()delimiter(")char(\\n)delimiter(")operator(\))operator(;) - pre_type(print)operator(()delimiter(")string(STDERR:)char(\\n)delimiter(")operator(\))operator(;) - ident(print_r)operator(()local_variable($errlines)operator(\))operator(;) - pre_type(print)operator(()delimiter(")char(\\n)delimiter(")operator(\))operator(;) + predefined(print)operator(()string<delimiter(")content(STDOUT:)char(\\n)delimiter(")>operator(\))operator(;) + predefined(print_r)operator(()local_variable($outlines)operator(\))operator(;) + predefined(print)operator(()string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) + predefined(print)operator(()string<delimiter(")content(STDERR:)char(\\n)delimiter(")>operator(\))operator(;) + predefined(print_r)operator(()local_variable($errlines)operator(\))operator(;) + predefined(print)operator(()string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) operator(}) comment(// -----------------------------) comment(// cmd3sel - control all three of kids in, out, and error.) -local_variable($cmd) operator(=) delimiter(")string(grep vt33 /none/such - /etc/termcap)delimiter(")operator(;) +local_variable($cmd) operator(=) string<delimiter(")content(grep vt33 /none/such - /etc/termcap)delimiter(")>operator(;) local_variable($proc) operator(=) ident(proc_open)operator(()local_variable($cmd)operator(,) - pre_type(array)operator(()integer(0) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(,) - integer(1) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(,) - integer(2) operator(=>) pre_type(array)operator(()delimiter(')string(pipe)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(\))operator(,) + predefined(array)operator(()integer(0) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(,) + integer(1) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(,) + integer(2) operator(=>) predefined(array)operator(()string<delimiter(')content(pipe)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(\))operator(,) local_variable($pipes)operator(\))operator(;) -reserved(if) operator(()ident(is_resource)operator(()local_variable($proc)operator(\))operator(\)) operator({) - ident(fwrite)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(,) delimiter(")string(This line has a vt33 lurking in it)char(\\n)delimiter(")operator(\))operator(;) - ident(fclose)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(\))operator(;) +reserved(if) operator(()predefined(is_resource)operator(()local_variable($proc)operator(\))operator(\)) operator({) + predefined(fwrite)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(,) string<delimiter(")content(This line has a vt33 lurking in it)char(\\n)delimiter(")>operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(0)operator(])operator(\))operator(;) - local_variable($readers) operator(=) pre_type(array)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(,) local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) + local_variable($readers) operator(=) predefined(array)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(,) local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) reserved(while) operator(()ident(stream_select)operator(()local_variable($read)operator(=)local_variable($readers)operator(,) - local_variable($write)operator(=)pre_type(null)operator(,) - local_variable($except)operator(=)pre_type(null)operator(,) + local_variable($write)operator(=)reserved(null)operator(,) + local_variable($except)operator(=)reserved(null)operator(,) integer(0)operator(,) integer(200000)operator(\)) operator(>) integer(0)operator(\)) operator({) reserved(foreach) operator(()local_variable($read) reserved(as) local_variable($stream)operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($stream)operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(!==) pre_type(false)operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($stream)operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(!==) reserved(false)operator(\)) operator({) reserved(if) operator(()local_variable($stream) operator(===) local_variable($pipes)operator([)integer(1)operator(])operator(\)) operator({) - pre_type(print) delimiter(")string(STDOUT: )local_variable($line)delimiter(")operator(;) + predefined(print) string<delimiter(")content(STDOUT: )local_variable($line)delimiter(")>operator(;) operator(}) reserved(else) operator({) - pre_type(print) delimiter(")string(STDERR: )local_variable($line)delimiter(")operator(;) + predefined(print) string<delimiter(")content(STDERR: )local_variable($line)delimiter(")>operator(;) operator(}) operator(}) - reserved(if) operator(()ident(feof)operator(()local_variable($stream)operator(\))operator(\)) operator({) - local_variable($readers) operator(=) ident(array_diff)operator(()local_variable($readers)operator(,) pre_type(array)operator(()local_variable($stream)operator(\))operator(\))operator(;) + reserved(if) operator(()predefined(feof)operator(()local_variable($stream)operator(\))operator(\)) operator({) + local_variable($readers) operator(=) predefined(array_diff)operator(()local_variable($readers)operator(,) predefined(array)operator(()local_variable($stream)operator(\))operator(\))operator(;) operator(}) operator(}) operator(}) - ident(fclose)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) - ident(fclose)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(1)operator(])operator(\))operator(;) + predefined(fclose)operator(()local_variable($pipes)operator([)integer(2)operator(])operator(\))operator(;) ident(proc_close)operator(()local_variable($proc)operator(\))operator(;) operator(}) @@ -5064,59 +5064,59 @@ comment(// modified here to use socketpair only.) comment(// -----------------------------) comment(// pipe1 - use socketpair and fork so parent can send to child) -local_variable($sockets) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($sockets) operator(=) predefined(array)operator(()operator(\))operator(;) reserved(if) operator(()operator(!)ident(socket_create_pair)operator(()constant(AF_UNIX)operator(,) constant(SOCK_STREAM)operator(,) integer(0)operator(,) local_variable($sockets)operator(\))operator(\)) operator({) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) -pre_type(list)operator(()local_variable($reader)operator(,) local_variable($writer)operator(\)) operator(=) local_variable($sockets)operator(;) +predefined(list)operator(()local_variable($reader)operator(,) local_variable($writer)operator(\)) operator(=) local_variable($sockets)operator(;) local_variable($pid) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) -reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) +reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($pid)operator(\)) operator({) ident(socket_close)operator(()local_variable($reader)operator(\))operator(;) - local_variable($line) operator(=) ident(sprintf)operator(()delimiter(")string(Parent Pid %d is sending this)char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(\))operator(;) - reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($writer)operator(,) local_variable($line)operator(,) ident(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(sprintf)operator(()string<delimiter(")content(Parent Pid %d is sending this)char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(\))operator(;) + reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($writer)operator(,) local_variable($line)operator(,) predefined(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) ident(socket_close)operator(()local_variable($writer)operator(\))operator(;) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) ident(socket_close)operator(()local_variable($writer)operator(\))operator(;) ident(pcntl_waitpid)operator(()local_variable($pid)operator(,) local_variable($status)operator(\))operator(;) operator(}) reserved(else) operator({) ident(socket_close)operator(()local_variable($writer)operator(\))operator(;) local_variable($line) operator(=) ident(socket_read)operator(()local_variable($reader)operator(,) integer(1024)operator(,) constant(PHP_NORMAL_READ)operator(\))operator(;) - ident(printf)operator(()delimiter(")string(Child Pid %d just read this: `%s')char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(,) ident(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(Child Pid %d just read this: `%s')char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(,) predefined(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) ident(socket_close)operator(()local_variable($reader)operator(\))operator(;) comment(// this will happen anyway) - reserved(exit)operator(()integer(0)operator(\))operator(;) + predefined(exit)operator(()integer(0)operator(\))operator(;) operator(}) comment(// -----------------------------) comment(// pipe2 - use socketpair and fork so child can send to parent) -local_variable($sockets) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($sockets) operator(=) predefined(array)operator(()operator(\))operator(;) reserved(if) operator(()operator(!)ident(socket_create_pair)operator(()constant(AF_UNIX)operator(,) constant(SOCK_STREAM)operator(,) integer(0)operator(,) local_variable($sockets)operator(\))operator(\)) operator({) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) -pre_type(list)operator(()local_variable($reader)operator(,) local_variable($writer)operator(\)) operator(=) local_variable($sockets)operator(;) +predefined(list)operator(()local_variable($reader)operator(,) local_variable($writer)operator(\)) operator(=) local_variable($sockets)operator(;) local_variable($pid) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) -reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) +reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($pid)operator(\)) operator({) ident(socket_close)operator(()local_variable($writer)operator(\))operator(;) local_variable($line) operator(=) ident(socket_read)operator(()local_variable($reader)operator(,) integer(1024)operator(,) constant(PHP_NORMAL_READ)operator(\))operator(;) - ident(printf)operator(()delimiter(")string(Parent Pid %d just read this: `%s')char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(,) ident(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(Parent Pid %d just read this: `%s')char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(,) predefined(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) ident(socket_close)operator(()local_variable($reader)operator(\))operator(;) ident(pcntl_waitpid)operator(()local_variable($pid)operator(,) local_variable($status)operator(\))operator(;) operator(}) reserved(else) operator({) ident(socket_close)operator(()local_variable($reader)operator(\))operator(;) - local_variable($line) operator(=) ident(sprintf)operator(()delimiter(")string(Child Pid %d is sending this)char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(\))operator(;) - reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($writer)operator(,) local_variable($line)operator(,) ident(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(sprintf)operator(()string<delimiter(")content(Child Pid %d is sending this)char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(\))operator(;) + reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($writer)operator(,) local_variable($line)operator(,) predefined(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) ident(socket_close)operator(()local_variable($writer)operator(\))operator(;) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) ident(socket_close)operator(()local_variable($writer)operator(\))operator(;) comment(// this will happen anyway) - reserved(exit)operator(()integer(0)operator(\))operator(;) + predefined(exit)operator(()integer(0)operator(\))operator(;) operator(}) comment(// -----------------------------) @@ -5130,37 +5130,37 @@ comment(// examples are skipped here.) comment(// -----------------------------) comment(// pipe6 - bidirectional communication using socketpair) -local_variable($sockets) operator(=) pre_type(array)operator(()operator(\))operator(;) +local_variable($sockets) operator(=) predefined(array)operator(()operator(\))operator(;) reserved(if) operator(()operator(!)ident(socket_create_pair)operator(()constant(AF_UNIX)operator(,) constant(SOCK_STREAM)operator(,) integer(0)operator(,) local_variable($sockets)operator(\))operator(\)) operator({) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) -pre_type(list)operator(()local_variable($child)operator(,) local_variable($parent)operator(\)) operator(=) local_variable($sockets)operator(;) +predefined(list)operator(()local_variable($child)operator(,) local_variable($parent)operator(\)) operator(=) local_variable($sockets)operator(;) local_variable($pid) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) -reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) +reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($pid)operator(\)) operator({) ident(socket_close)operator(()local_variable($parent)operator(\))operator(;) - local_variable($line) operator(=) ident(sprintf)operator(()delimiter(")string(Parent Pid %d is sending this)char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(\))operator(;) - reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($child)operator(,) local_variable($line)operator(,) ident(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(sprintf)operator(()string<delimiter(")content(Parent Pid %d is sending this)char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(\))operator(;) + reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($child)operator(,) local_variable($line)operator(,) predefined(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) ident(socket_close)operator(()local_variable($child)operator(\))operator(;) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) local_variable($line) operator(=) ident(socket_read)operator(()local_variable($child)operator(,) integer(1024)operator(,) constant(PHP_NORMAL_READ)operator(\))operator(;) - ident(printf)operator(()delimiter(")string(Parent Pid %d just read this: `%s')char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(,) ident(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) + predefined(printf)operator(()string<delimiter(")content(Parent Pid %d just read this: `%s')char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(,) predefined(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) ident(socket_close)operator(()local_variable($child)operator(\))operator(;) ident(pcntl_waitpid)operator(()local_variable($pid)operator(,) local_variable($status)operator(\))operator(;) operator(}) reserved(else) operator({) ident(socket_close)operator(()local_variable($child)operator(\))operator(;) local_variable($line) operator(=) ident(socket_read)operator(()local_variable($parent)operator(,) integer(1024)operator(,) constant(PHP_NORMAL_READ)operator(\))operator(;) - ident(printf)operator(()delimiter(")string(Child Pid %d just read this: `%s')char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(,) ident(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) - local_variable($line) operator(=) ident(sprintf)operator(()delimiter(")string(Child Pid %d is sending this)char(\\n)delimiter(")operator(,) ident(getmypid)operator(()operator(\))operator(\))operator(;) - reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($parent)operator(,) local_variable($line)operator(,) ident(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) + predefined(printf)operator(()string<delimiter(")content(Child Pid %d just read this: `%s')char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(,) predefined(rtrim)operator(()local_variable($line)operator(\))operator(\))operator(;) + local_variable($line) operator(=) predefined(sprintf)operator(()string<delimiter(")content(Child Pid %d is sending this)char(\\n)delimiter(")>operator(,) predefined(getmypid)operator(()operator(\))operator(\))operator(;) + reserved(if) operator(()operator(!)ident(socket_write)operator(()local_variable($parent)operator(,) local_variable($line)operator(,) predefined(strlen)operator(()local_variable($line)operator(\))operator(\))operator(\)) operator({) ident(socket_close)operator(()local_variable($parent)operator(\))operator(;) - reserved(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) + predefined(die)operator(()ident(socket_strerror)operator(()ident(socket_last_error)operator(()operator(\))operator(\))operator(\))operator(;) operator(}) ident(socket_close)operator(()local_variable($parent)operator(\))operator(;) - reserved(exit)operator(()integer(0)operator(\))operator(;) + predefined(exit)operator(()integer(0)operator(\))operator(;) operator(}) comment(// @@PLEAC@@_16.11) @@ -5168,26 +5168,26 @@ comment(// -----------------------------) comment(// % mkfifo /path/to/named.pipe) comment(// -----------------------------) -local_variable($fifo) operator(=) ident(fopen)operator(()delimiter(')string(/path/to/named.pipe)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(;) -reserved(if) operator(()local_variable($fifo) operator(!==) pre_type(false)operator(\)) operator({) - reserved(while) operator(()operator(!)ident(feof)operator(()local_variable($fifo)operator(\))operator(\)) operator({) - local_variable($line) operator(=) ident(fgets)operator(()local_variable($fifo)operator(\))operator(;) - reserved(if) operator(()local_variable($line) operator(===) pre_type(false)operator(\)) reserved(break)operator(;) - pre_type(echo) delimiter(")string(Got: )local_variable($line)delimiter(")operator(;) +local_variable($fifo) operator(=) predefined(fopen)operator(()string<delimiter(')content(/path/to/named.pipe)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(;) +reserved(if) operator(()local_variable($fifo) operator(!==) reserved(false)operator(\)) operator({) + reserved(while) operator(()operator(!)predefined(feof)operator(()local_variable($fifo)operator(\))operator(\)) operator({) + local_variable($line) operator(=) predefined(fgets)operator(()local_variable($fifo)operator(\))operator(;) + reserved(if) operator(()local_variable($line) operator(===) reserved(false)operator(\)) reserved(break)operator(;) + predefined(echo) string<delimiter(")content(Got: )local_variable($line)delimiter(")>operator(;) operator(}) - ident(fclose)operator(()local_variable($fifo)operator(\))operator(;) + predefined(fclose)operator(()local_variable($fifo)operator(\))operator(;) operator(}) reserved(else) operator({) - reserved(die)operator(()delimiter(')string(could not open fifo for read)delimiter(')operator(\))operator(;) + predefined(die)operator(()string<delimiter(')content(could not open fifo for read)delimiter(')>operator(\))operator(;) operator(}) comment(// -----------------------------) -local_variable($fifo) operator(=) ident(fopen)operator(()delimiter(')string(/path/to/named.pipe)delimiter(')operator(,) delimiter(')string(w)delimiter(')operator(\))operator(;) -reserved(if) operator(()local_variable($fifo) operator(!==) pre_type(false)operator(\)) operator({) - ident(fwrite)operator(()local_variable($fifo)operator(,) delimiter(")string(Smoke this.)char(\\n)delimiter(")operator(\))operator(;) - ident(fclose)operator(()local_variable($fifo)operator(\))operator(;) +local_variable($fifo) operator(=) predefined(fopen)operator(()string<delimiter(')content(/path/to/named.pipe)delimiter(')>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(;) +reserved(if) operator(()local_variable($fifo) operator(!==) reserved(false)operator(\)) operator({) + predefined(fwrite)operator(()local_variable($fifo)operator(,) string<delimiter(")content(Smoke this.)char(\\n)delimiter(")>operator(\))operator(;) + predefined(fclose)operator(()local_variable($fifo)operator(\))operator(;) operator(}) reserved(else) operator({) - reserved(die)operator(()delimiter(')string(could not open fifo for write)delimiter(')operator(\))operator(;) + predefined(die)operator(()string<delimiter(')content(could not open fifo for write)delimiter(')>operator(\))operator(;) operator(}) comment(// -----------------------------) @@ -5196,63 +5196,63 @@ comment(// % mknod ~/.plan p # in case you don't have mkfifo) comment(// -----------------------------) comment(// dateplan - place current date and time in .plan file) -reserved(while) operator(()pre_type(true)operator(\)) operator({) - local_variable($home) operator(=) ident(getenv)operator(()delimiter(')string(HOME)delimiter(')operator(\))operator(;) - local_variable($fifo) operator(=) ident(fopen)operator(()delimiter(")local_variable($home)string(/.plan)delimiter(")operator(,) delimiter(')string(w)delimiter(')operator(\))operator(;) - reserved(if) operator(()local_variable($fifo) operator(===) pre_type(false)operator(\)) operator({) - reserved(die)operator(()delimiter(")string(Couldn't open )local_variable($home)string(/.plan for writing.)char(\\n)delimiter(")operator(\))operator(;) +reserved(while) operator(()reserved(true)operator(\)) operator({) + local_variable($home) operator(=) predefined(getenv)operator(()string<delimiter(')content(HOME)delimiter(')>operator(\))operator(;) + local_variable($fifo) operator(=) predefined(fopen)operator(()string<delimiter(")local_variable($home)content(/.plan)delimiter(")>operator(,) string<delimiter(')content(w)delimiter(')>operator(\))operator(;) + reserved(if) operator(()local_variable($fifo) operator(===) reserved(false)operator(\)) operator({) + predefined(die)operator(()string<delimiter(")content(Couldn't open )local_variable($home)content(/.plan for writing.)char(\\n)delimiter(")>operator(\))operator(;) operator(}) - ident(fwrite)operator(()local_variable($fifo)operator(,) - delimiter(')string(The current time is )delimiter(') - operator(.) ident(strftime)operator(()delimiter(')string(%a, %d %b %Y %H:%M:%S %z)delimiter(')operator(\)) - operator(.) delimiter(")char(\\n)delimiter(")operator(\))operator(;) - ident(fclose)operator(()local_variable($fifo)operator(\))operator(;) - ident(sleep)operator(()integer(1)operator(\))operator(;) + predefined(fwrite)operator(()local_variable($fifo)operator(,) + string<delimiter(')content(The current time is )delimiter(')> + operator(.) predefined(strftime)operator(()string<delimiter(')content(%a, %d %b %Y %H:%M:%S %z)delimiter(')>operator(\)) + operator(.) string<delimiter(")char(\\n)delimiter(")>operator(\))operator(;) + predefined(fclose)operator(()local_variable($fifo)operator(\))operator(;) + predefined(sleep)operator(()integer(1)operator(\))operator(;) operator(}) comment(// -----------------------------) comment(// fifolog - read and record log msgs from fifo) -local_variable($fifo) operator(=) pre_type(null)operator(;) +local_variable($fifo) operator(=) reserved(null)operator(;) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) -pre_type(function) ident(handle_alarm)operator(()local_variable($signal)operator(\)) operator({) - pre_type(global) local_variable($fifo)operator(;) - reserved(if) operator(()local_variable($fifo)operator(\)) ident(fclose)operator(()local_variable($fifo)operator(\))operator(;) comment(// move on to the next queued process) +reserved(function) ident(handle_alarm)operator(()local_variable($signal)operator(\)) operator({) + reserved(global) local_variable($fifo)operator(;) + reserved(if) operator(()local_variable($fifo)operator(\)) predefined(fclose)operator(()local_variable($fifo)operator(\))operator(;) comment(// move on to the next queued process) operator(}) -ident(pcntl_signal)operator(()constant(SIGALRM)operator(,) delimiter(')string(handle_alarm)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGALRM)operator(,) string<delimiter(')content(handle_alarm)delimiter(')>operator(\))operator(;) -reserved(while) operator(()pre_type(true)operator(\)) operator({) +reserved(while) operator(()reserved(true)operator(\)) operator({) ident(pcntl_alarm)operator(()integer(0)operator(\))operator(;) comment(// turn off alarm for blocking open) - local_variable($fifo) operator(=) ident(fopen)operator(()delimiter(')string(/tmp/log)delimiter(')operator(,) delimiter(')string(r)delimiter(')operator(\))operator(;) - reserved(if) operator(()local_variable($fifo) operator(===) pre_type(false)operator(\)) operator({) - reserved(die)operator(()delimiter(")string(can't open /tmp/log)delimiter(")operator(\))operator(;) + local_variable($fifo) operator(=) predefined(fopen)operator(()string<delimiter(')content(/tmp/log)delimiter(')>operator(,) string<delimiter(')content(r)delimiter(')>operator(\))operator(;) + reserved(if) operator(()local_variable($fifo) operator(===) reserved(false)operator(\)) operator({) + predefined(die)operator(()string<delimiter(")content(can't open /tmp/log)delimiter(")>operator(\))operator(;) operator(}) ident(pcntl_alarm)operator(()integer(1)operator(\))operator(;) comment(// you have 1 second to log) - local_variable($service) operator(=) ident(fgets)operator(()local_variable($fifo)operator(\))operator(;) - reserved(if) operator(()local_variable($service) operator(===) pre_type(false)operator(\)) reserved(continue)operator(;) comment(// interrupt or nothing logged) - local_variable($service) operator(=) ident(rtrim)operator(()local_variable($service)operator(\))operator(;) + local_variable($service) operator(=) predefined(fgets)operator(()local_variable($fifo)operator(\))operator(;) + reserved(if) operator(()local_variable($service) operator(===) reserved(false)operator(\)) reserved(continue)operator(;) comment(// interrupt or nothing logged) + local_variable($service) operator(=) predefined(rtrim)operator(()local_variable($service)operator(\))operator(;) - local_variable($message) operator(=) ident(fgets)operator(()local_variable($fifo)operator(\))operator(;) - reserved(if) operator(()local_variable($message) operator(===) pre_type(false)operator(\)) reserved(continue)operator(;) comment(// interrupt or nothing logged) - local_variable($message) operator(=) ident(rtrim)operator(()local_variable($message)operator(\))operator(;) + local_variable($message) operator(=) predefined(fgets)operator(()local_variable($fifo)operator(\))operator(;) + reserved(if) operator(()local_variable($message) operator(===) reserved(false)operator(\)) reserved(continue)operator(;) comment(// interrupt or nothing logged) + local_variable($message) operator(=) predefined(rtrim)operator(()local_variable($message)operator(\))operator(;) ident(pcntl_alarm)operator(()integer(0)operator(\))operator(;) comment(// turn off alarms for message processing) - reserved(if) operator(()local_variable($service) operator(==) delimiter(')string(http)delimiter(')operator(\)) operator({) + reserved(if) operator(()local_variable($service) operator(==) string<delimiter(')content(http)delimiter(')>operator(\)) operator({) comment(// ignoring) - operator(}) reserved(elseif) operator(()local_variable($service) operator(==) delimiter(')string(login)delimiter(')operator(\)) operator({) + operator(}) reserved(elseif) operator(()local_variable($service) operator(==) string<delimiter(')content(login)delimiter(')>operator(\)) operator({) comment(// log to /var/log/login) - local_variable($log) operator(=) ident(fopen)operator(()delimiter(')string(/var/log/login)delimiter(')operator(,) delimiter(')string(a)delimiter(')operator(\))operator(;) - reserved(if) operator(()local_variable($log) operator(!==) pre_type(false)operator(\)) operator({) - ident(fwrite)operator(()local_variable($log)operator(,) - ident(strftime)operator(()delimiter(')string(%a, %d %b %Y %H:%M:%S %z)delimiter(')operator(\)) - operator(.) delimiter(")string( )local_variable($service)string( )local_variable($message)char(\\n)delimiter(")operator(\))operator(;) - ident(fclose)operator(()local_variable($log)operator(\))operator(;) + local_variable($log) operator(=) predefined(fopen)operator(()string<delimiter(')content(/var/log/login)delimiter(')>operator(,) string<delimiter(')content(a)delimiter(')>operator(\))operator(;) + reserved(if) operator(()local_variable($log) operator(!==) reserved(false)operator(\)) operator({) + predefined(fwrite)operator(()local_variable($log)operator(,) + predefined(strftime)operator(()string<delimiter(')content(%a, %d %b %Y %H:%M:%S %z)delimiter(')>operator(\)) + operator(.) string<delimiter(")content( )local_variable($service)content( )local_variable($message)char(\\n)delimiter(")>operator(\))operator(;) + predefined(fclose)operator(()local_variable($log)operator(\))operator(;) operator(}) reserved(else) operator({) - ident(trigger_error)operator(()delimiter(")string(Couldn't log )local_variable($service)string( )local_variable($message)string( to /var/log/login)char(\\n)delimiter(")operator(,) + predefined(trigger_error)operator(()string<delimiter(")content(Couldn't log )local_variable($service)content( )local_variable($message)content( to /var/log/login)char(\\n)delimiter(")>operator(,) constant(E_USER_WARNING)operator(\))operator(;) operator(}) operator(}) @@ -5261,7 +5261,7 @@ operator(}) comment(// @@PLEAC@@_16.12) comment(// sharetest - test shared variables across forks) -local_variable($SHM_KEY) operator(=) ident(ftok)operator(()pre_constant(__FILE__)operator(,) ident(chr)operator(()integer(1)operator(\))operator(\))operator(;) +local_variable($SHM_KEY) operator(=) predefined(ftok)operator(()pre_constant(__FILE__)operator(,) predefined(chr)operator(()integer(1)operator(\))operator(\))operator(;) local_variable($handle) operator(=) ident(sem_get)operator(()local_variable($SHM_KEY)operator(\))operator(;) local_variable($buffer) operator(=) ident(shm_attach)operator(()local_variable($handle)operator(,) integer(1024)operator(\))operator(;) @@ -5271,32 +5271,32 @@ comment(// thing without it.) reserved(for) operator(()local_variable($i) operator(=) integer(0)operator(;) local_variable($i) operator(<) integer(10)operator(;) local_variable($i)operator(++)operator(\)) operator({) local_variable($child) operator(=) ident(pcntl_fork)operator(()operator(\))operator(;) - reserved(if) operator(()local_variable($child) operator(==) integer(-1)operator(\)) operator({) - reserved(die)operator(()delimiter(')string(cannot fork)delimiter(')operator(\))operator(;) + reserved(if) operator(()local_variable($child) operator(==) operator(-)integer(1)operator(\)) operator({) + predefined(die)operator(()string<delimiter(')content(cannot fork)delimiter(')>operator(\))operator(;) operator(}) reserved(elseif) operator(()local_variable($child)operator(\)) operator({) local_variable($kids)operator([)operator(]) operator(=) local_variable($child)operator(;) comment(// in case we care about their pids) operator(}) reserved(else) operator({) ident(squabble)operator(()operator(\))operator(;) - reserved(exit)operator(()operator(\))operator(;) + predefined(exit)operator(()operator(\))operator(;) operator(}) operator(}) -reserved(while) operator(()pre_type(true)operator(\)) operator({) - pre_type(print) delimiter(')string(Buffer is )delimiter(') operator(.) ident(shm_get_var)operator(()local_variable($buffer)operator(,) integer(1)operator(\)) operator(.) delimiter(")char(\\n)delimiter(")operator(;) - ident(sleep)operator(()integer(1)operator(\))operator(;) +reserved(while) operator(()reserved(true)operator(\)) operator({) + predefined(print) string<delimiter(')content(Buffer is )delimiter(')> operator(.) ident(shm_get_var)operator(()local_variable($buffer)operator(,) integer(1)operator(\)) operator(.) string<delimiter(")char(\\n)delimiter(")>operator(;) + predefined(sleep)operator(()integer(1)operator(\))operator(;) operator(}) -reserved(die)operator(()delimiter(')string(Not reached)delimiter(')operator(\))operator(;) +predefined(die)operator(()string<delimiter(')content(Not reached)delimiter(')>operator(\))operator(;) -pre_type(function) ident(squabble)operator(()operator(\)) operator({) - pre_type(global) local_variable($handle)operator(;) - pre_type(global) local_variable($buffer)operator(;) +reserved(function) ident(squabble)operator(()operator(\)) operator({) + reserved(global) local_variable($handle)operator(;) + reserved(global) local_variable($buffer)operator(;) local_variable($i) operator(=) integer(0)operator(;) - local_variable($pid) operator(=) ident(getmypid)operator(()operator(\))operator(;) - reserved(while) operator(()pre_type(true)operator(\)) operator({) - reserved(if) operator(()ident(preg_match)operator(()delimiter(")string(/^)local_variable($pid)char(\\\\)string(b/)delimiter(")operator(,) ident(shm_get_var)operator(()local_variable($buffer)operator(,) integer(1)operator(\))operator(\))operator(\)) reserved(continue)operator(;) + local_variable($pid) operator(=) predefined(getmypid)operator(()operator(\))operator(;) + reserved(while) operator(()reserved(true)operator(\)) operator({) + reserved(if) operator(()predefined(preg_match)operator(()string<delimiter(")content(/^)local_variable($pid)char(\\\\)content(b/)delimiter(")>operator(,) ident(shm_get_var)operator(()local_variable($buffer)operator(,) integer(1)operator(\))operator(\))operator(\)) reserved(continue)operator(;) ident(sem_acquire)operator(()local_variable($handle)operator(\))operator(;) local_variable($i)operator(++)operator(;) - ident(shm_put_var)operator(()local_variable($buffer)operator(,) integer(1)operator(,) delimiter(")local_variable($pid)string( )local_variable($i)delimiter(")operator(\))operator(;) + ident(shm_put_var)operator(()local_variable($buffer)operator(,) integer(1)operator(,) string<delimiter(")local_variable($pid)content( )local_variable($i)delimiter(")>operator(\))operator(;) ident(sem_release)operator(()local_variable($handle)operator(\))operator(;) operator(}) operator(}) @@ -5318,7 +5318,7 @@ comment(// ...) comment(// @@PLEAC@@_16.13) comment(// Available signal constants) -operator(%) ident(php) operator(-)ident(r) delimiter(')string(print_r(get_defined_constants(\)\);)delimiter(') operator(|) ident(grep) delimiter(')string(\\)string([SIG)delimiter(') operator(|) ident(grep) operator(-)ident(v) ident(_) +operator(%) ident(php) operator(-)ident(r) string<delimiter(')content(print_r(get_defined_constants(\)\);)delimiter(')> operator(|) ident(grep) string<delimiter(')content(\\[)content(SIG)delimiter(')> operator(|) ident(grep) operator(-)ident(v) ident(_) operator([)constant(SIGHUP)operator(]) operator(=>) integer(1) operator([)constant(SIGINT)operator(]) operator(=>) integer(2) operator([)constant(SIGQUIT)operator(]) operator(=>) integer(3) @@ -5356,18 +5356,18 @@ operator(%) ident(php) operator(-)ident(r) delimiter(')string(print_r(get_define operator([)constant(SIGBABY)operator(]) operator(=>) integer(31) comment(// Predefined signal handler constants) -operator(%) ident(php) operator(-)ident(r) delimiter(')string(print_r(get_defined_constants(\)\);)delimiter(') operator(|) ident(grep) delimiter(')string(\\)string([SIG)delimiter(') operator(|) ident(grep) ident(_) +operator(%) ident(php) operator(-)ident(r) string<delimiter(')content(print_r(get_defined_constants(\)\);)delimiter(')> operator(|) ident(grep) string<delimiter(')content(\\[)content(SIG)delimiter(')> operator(|) ident(grep) ident(_) operator([)constant(SIG_IGN)operator(]) operator(=>) integer(1) operator([)constant(SIG_DFL)operator(]) operator(=>) integer(0) - operator([)constant(SIG_ERR)operator(]) operator(=>) integer(-1) + operator([)constant(SIG_ERR)operator(]) operator(=>) operator(-)integer(1) comment(// @@PLEAC@@_16.14) comment(// send pid a signal 9) ident(posix_kill)operator(()local_variable($pid)operator(,) integer(9)operator(\))operator(;) comment(// send whole job a signal 1) -ident(posix_kill)operator(()local_variable($pgrp)operator(,) integer(-1)operator(\))operator(;) +ident(posix_kill)operator(()local_variable($pgrp)operator(,) operator(-)integer(1)operator(\))operator(;) comment(// send myself a SIGUSR1) -ident(posix_kill)operator(()ident(getmypid)operator(()operator(\))operator(,) constant(SIGUSR1)operator(\))operator(;) +ident(posix_kill)operator(()predefined(getmypid)operator(()operator(\))operator(,) constant(SIGUSR1)operator(\))operator(;) comment(// send a SIGHUP to processes in pids) reserved(foreach) operator(()local_variable($pids) reserved(as) local_variable($pid)operator(\)) ident(posix_kill)operator(()local_variable($pid)operator(,) constant(SIGHUP)operator(\))operator(;) @@ -5375,19 +5375,19 @@ comment(// -----------------------------) comment(// Use kill with pseudo-signal 0 to see if process is alive.) reserved(if) operator(()ident(posix_kill)operator(()local_variable($minion)operator(,) integer(0)operator(\))operator(\)) operator({) - pre_type(echo) delimiter(")local_variable($minion)string( is alive!)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")local_variable($minion)content( is alive!)char(\\n)delimiter(")>operator(;) operator(}) reserved(else) operator({) - pre_type(echo) delimiter(")local_variable($minion)string( is deceased.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")local_variable($minion)content( is deceased.)char(\\n)delimiter(")>operator(;) operator(}) comment(// @@PLEAC@@_16.15) comment(// call got_sig_quit for every SIGQUIT) -ident(pcntl_signal)operator(()constant(SIGQUIT)operator(,) delimiter(')string(got_sig_quit)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGQUIT)operator(,) string<delimiter(')content(got_sig_quit)delimiter(')>operator(\))operator(;) comment(// call got_sig_pipe for every SIGPIPE) -ident(pcntl_signal)operator(()constant(SIGPIPE)operator(,) delimiter(')string(got_sig_pipe)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGPIPE)operator(,) string<delimiter(')content(got_sig_pipe)delimiter(')>operator(\))operator(;) comment(// increment ouch for every SIGINT) -pre_type(function) ident(got_sig_int)operator(()local_variable($signal)operator(\)) operator({) pre_type(global) local_variable($ouch)operator(;) local_variable($ouch)operator(++)operator(;) operator(}) -ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(got_sig_int)delimiter(')operator(\))operator(;) +reserved(function) ident(got_sig_int)operator(()local_variable($signal)operator(\)) operator({) reserved(global) local_variable($ouch)operator(;) local_variable($ouch)operator(++)operator(;) operator(}) +ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(got_sig_int)delimiter(')>operator(\))operator(;) comment(// ignore the signal INT) ident(pcntl_signal)operator(()constant(SIGINT)operator(,) constant(SIG_IGN)operator(\))operator(;) comment(// restore default STOP signal handling) @@ -5395,51 +5395,51 @@ ident(pcntl_signal)operator(()constant(SIGSTOP)operator(,) constant(SIG_DFL)oper comment(// @@PLEAC@@_16.16) comment(// the signal handler) -pre_type(function) ident(ding)operator(()local_variable($signal)operator(\)) operator({) - ident(fwrite)operator(()constant(STDERR)operator(,) delimiter(")string(\\)string(x07Enter your name!)char(\\n)delimiter(")operator(\))operator(;) +reserved(function) ident(ding)operator(()local_variable($signal)operator(\)) operator({) + predefined(fwrite)operator(()constant(STDERR)operator(,) string<delimiter(")char(\\x07)content(Enter your name!)char(\\n)delimiter(")>operator(\))operator(;) operator(}) comment(// prompt for name, overriding SIGINT) -pre_type(function) ident(get_name)operator(()operator(\)) operator({) +reserved(function) ident(get_name)operator(()operator(\)) operator({) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) - ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(ding)delimiter(')operator(\))operator(;) + ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(ding)delimiter(')>operator(\))operator(;) - pre_type(echo) delimiter(")string(Kindly Stranger, please enter your name: )delimiter(")operator(;) - reserved(while) operator(()operator(!)operator(@)ident(stream_select)operator(()local_variable($read)operator(=)pre_type(array)operator(()constant(STDIN)operator(\))operator(,) - local_variable($write)operator(=)pre_type(null)operator(,) - local_variable($except)operator(=)pre_type(null)operator(,) + predefined(echo) string<delimiter(")content(Kindly Stranger, please enter your name: )delimiter(")>operator(;) + reserved(while) operator(()operator(!)operator(@)ident(stream_select)operator(()local_variable($read)operator(=)predefined(array)operator(()constant(STDIN)operator(\))operator(,) + local_variable($write)operator(=)reserved(null)operator(,) + local_variable($except)operator(=)reserved(null)operator(,) integer(1)operator(\))operator(\)) operator({) comment(// allow signals to be observed) operator(}) - local_variable($name) operator(=) ident(fgets)operator(()constant(STDIN)operator(\))operator(;) + local_variable($name) operator(=) predefined(fgets)operator(()constant(STDIN)operator(\))operator(;) comment(// Since pcntl_signal(\) doesn't return the old signal handler, the) comment(// best we can do here is set it back to the default behavior.) ident(pcntl_signal)operator(()constant(SIGINT)operator(,) constant(SIG_DFL)operator(\))operator(;) - reserved(return) local_variable($name)operator(;) + predefined(return) local_variable($name)operator(;) operator(}) comment(// @@PLEAC@@_16.17) -pre_type(function) ident(got_int)operator(()local_variable($signal)operator(\)) operator({) - ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(got_int)delimiter(')operator(\))operator(;) comment(// but not for SIGCHLD!) +reserved(function) ident(got_int)operator(()local_variable($signal)operator(\)) operator({) + ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(got_int)delimiter(')>operator(\))operator(;) comment(// but not for SIGCHLD!) comment(// ...) operator(}) -ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(got_int)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(got_int)delimiter(')>operator(\))operator(;) comment(// -----------------------------) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) -local_variable($interrupted) operator(=) pre_type(false)operator(;) +local_variable($interrupted) operator(=) reserved(false)operator(;) -pre_type(function) ident(got_int)operator(()local_variable($signal)operator(\)) operator({) - pre_type(global) local_variable($interrupted)operator(;) - local_variable($interrupted) operator(=) pre_type(true)operator(;) +reserved(function) ident(got_int)operator(()local_variable($signal)operator(\)) operator({) + reserved(global) local_variable($interrupted)operator(;) + local_variable($interrupted) operator(=) reserved(true)operator(;) comment(// The third argument to pcntl_signal(\) determines if system calls) comment(// should be restarted after a signal. It defaults to true.) - ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(got_int)delimiter(')operator(,) pre_type(false)operator(\))operator(;) comment(// or SIG_IGN) + ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(got_int)delimiter(')>operator(,) reserved(false)operator(\))operator(;) comment(// or SIG_IGN) operator(}) -ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(got_int)delimiter(')operator(,) pre_type(false)operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(got_int)delimiter(')>operator(,) reserved(false)operator(\))operator(;) comment(// ... long-running code that you don't want to restart) @@ -5453,11 +5453,11 @@ ident(pcntl_signal)operator(()constant(SIGINT)operator(,) constant(SIG_IGN)opera comment(// install signal handler) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) -pre_type(function) ident(tsktsk)operator(()local_variable($signal)operator(\)) operator({) - ident(fwrite)operator(()constant(STDERR)operator(,) delimiter(")string(\\)string(x07The long habit of living indisposeth us for dying.)delimiter(")operator(\))operator(;) - ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(tsktsk)delimiter(')operator(\))operator(;) +reserved(function) ident(tsktsk)operator(()local_variable($signal)operator(\)) operator({) + predefined(fwrite)operator(()constant(STDERR)operator(,) string<delimiter(")char(\\x07)content(The long habit of living indisposeth us for dying.)delimiter(")>operator(\))operator(;) + ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(tsktsk)delimiter(')>operator(\))operator(;) operator(}) -ident(pcntl_signal)operator(()constant(SIGINT)operator(,) delimiter(')string(tsktsk)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGINT)operator(,) string<delimiter(')content(tsktsk)delimiter(')>operator(\))operator(;) comment(// @@PLEAC@@_16.19) ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) constant(SIG_IGN)operator(\))operator(;) @@ -5465,48 +5465,48 @@ ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) constant(SIG_IGN)oper comment(// -----------------------------) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) -pre_type(function) ident(reaper)operator(()local_variable($signal)operator(\)) operator({) - local_variable($pid) operator(=) ident(pcntl_waitpid)operator(()integer(-1)operator(,) local_variable($status)operator(,) constant(WNOHANG)operator(\))operator(;) +reserved(function) ident(reaper)operator(()local_variable($signal)operator(\)) operator({) + local_variable($pid) operator(=) ident(pcntl_waitpid)operator(()operator(-)integer(1)operator(,) local_variable($status)operator(,) constant(WNOHANG)operator(\))operator(;) reserved(if) operator(()local_variable($pid) operator(>) integer(0)operator(\)) operator({) comment(// ...) ident(reaper)operator(()local_variable($signal)operator(\))operator(;) operator(}) comment(// install *after* calling waitpid) - ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) delimiter(')string(reaper)delimiter(')operator(\))operator(;) + ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) string<delimiter(')content(reaper)delimiter(')>operator(\))operator(;) operator(}) -ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) delimiter(')string(reaper)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) string<delimiter(')content(reaper)delimiter(')>operator(\))operator(;) comment(// -----------------------------) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) -pre_type(function) ident(reaper)operator(()local_variable($signal)operator(\)) operator({) - local_variable($pid) operator(=) ident(pcntl_waitpid)operator(()integer(-1)operator(,) local_variable($status)operator(,) constant(WNOHANG)operator(\))operator(;) - reserved(if) operator(()local_variable($pid) operator(==) integer(-1)operator(\)) operator({) +reserved(function) ident(reaper)operator(()local_variable($signal)operator(\)) operator({) + local_variable($pid) operator(=) ident(pcntl_waitpid)operator(()operator(-)integer(1)operator(,) local_variable($status)operator(,) constant(WNOHANG)operator(\))operator(;) + reserved(if) operator(()local_variable($pid) operator(==) operator(-)integer(1)operator(\)) operator({) comment(// No child waiting. Ignore it.) operator(}) reserved(else) operator({) reserved(if) operator(()ident(pcntl_wifexited)operator(()local_variable($signal)operator(\))operator(\)) operator({) - pre_type(echo) delimiter(")string(Process )local_variable($pid)string( exited.)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(Process )local_variable($pid)content( exited.)char(\\n)delimiter(")>operator(;) operator(}) reserved(else) operator({) - pre_type(echo) delimiter(")string(False alarm on )local_variable($pid)char(\\n)delimiter(")operator(;) + predefined(echo) string<delimiter(")content(False alarm on )local_variable($pid)char(\\n)delimiter(")>operator(;) operator(}) ident(reaper)operator(()local_variable($signal)operator(\))operator(;) operator(}) - ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) delimiter(')string(reaper)delimiter(')operator(\))operator(;) + ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) string<delimiter(')content(reaper)delimiter(')>operator(\))operator(;) operator(}) -ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) delimiter(')string(reaper)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGCHLD)operator(,) string<delimiter(')content(reaper)delimiter(')>operator(\))operator(;) comment(// @@PLEAC@@_16.20) comment(// PHP does not support sigprocmask(\).) comment(// @@PLEAC@@_16.21) reserved(declare)operator(()ident(ticks) operator(=) integer(1)operator(\))operator(;) -local_variable($aborted) operator(=) pre_type(false)operator(;) +local_variable($aborted) operator(=) reserved(false)operator(;) -pre_type(function) ident(handle_alarm)operator(()local_variable($signal)operator(\)) operator({) - pre_type(global) local_variable($aborted)operator(;) - local_variable($aborted) operator(=) pre_type(true)operator(;) +reserved(function) ident(handle_alarm)operator(()local_variable($signal)operator(\)) operator({) + reserved(global) local_variable($aborted)operator(;) + local_variable($aborted) operator(=) reserved(true)operator(;) operator(}) -ident(pcntl_signal)operator(()constant(SIGALRM)operator(,) delimiter(')string(handle_alarm)delimiter(')operator(\))operator(;) +ident(pcntl_signal)operator(()constant(SIGALRM)operator(,) string<delimiter(')content(handle_alarm)delimiter(')>operator(\))operator(;) ident(pcntl_alarm)operator(()integer(3600)operator(\))operator(;) comment(// long-time operations here) diff --git a/test/scanners/php/test.expected.raydebug b/test/scanners/php/test.expected.raydebug index 30c860c..de71c60 100644 --- a/test/scanners/php/test.expected.raydebug +++ b/test/scanners/php/test.expected.raydebug @@ -1,4 +1,4 @@ -operator(<)operator(?)ident(php) +inline_delimiter(<?php) comment(/*)comment(*) comment( * Zip class file) comment( *) @@ -7,11 +7,11 @@ comment( * @subpackage archive) comment( )comment(*/) comment(// Unlock?) -reserved(if)operator(()operator(!)ident(defined)operator(()delimiter(')string(UNLOCK)delimiter(')operator(\)) operator(|)operator(|) operator(!)constant(UNLOCK)operator(\)) - reserved(die)operator(()operator(\))operator(;) +reserved(if)operator(()operator(!)predefined(defined)operator(()string<delimiter(')content(UNLOCK)delimiter(')>operator(\)) operator(|)operator(|) operator(!)constant(UNLOCK)operator(\)) + predefined(die)operator(()operator(\))operator(;) comment(// Load the parent archive class) -pre_type(require_once)operator(()constant(ROOT_PATH)operator(.)delimiter(')string(/classes/archive.class.php)delimiter(')operator(\))operator(;) +predefined(require_once)operator(()constant(ROOT_PATH)operator(.)string<delimiter(')content(/classes/archive.class.php)delimiter(')>operator(\))operator(;) comment(/*)comment(*) comment( * Zip class) @@ -25,7 +25,7 @@ comment( * @since 1.0) comment( * @package fnord.bb) comment( * @subpackage archive) comment( )comment(*/) -pre_type(class) constant(Zip) pre_type(extends) constant(Archive) operator({) +reserved(class) constant(Zip) reserved(extends) constant(Archive) operator({) comment(/*)comment(*) comment( * Outputs the zip file) comment( *) @@ -40,49 +40,49 @@ comment( * @param string $filename The path where the zip file will be saved comment( *) comment( * @return bool|string Returns either true if the fil is sucessfully created or the content of the zip file) comment( )comment(*/) - pre_type(function) ident(out)operator(()local_variable($filename) operator(=) pre_type(false)operator(\)) operator({) + reserved(function) ident(out)operator(()local_variable($filename) operator(=) reserved(false)operator(\)) operator({) comment(// Empty output) - local_variable($file_data) operator(=) pre_type(array)operator(()operator(\))operator(;) comment(// Data of the file part) - local_variable($cd_data) operator(=) pre_type(array)operator(()operator(\))operator(;) comment(// Data of the central directory) + local_variable($file_data) operator(=) predefined(array)operator(()operator(\))operator(;) comment(// Data of the file part) + local_variable($cd_data) operator(=) predefined(array)operator(()operator(\))operator(;) comment(// Data of the central directory) comment(// Sort dirs and files by path length) - ident(uksort)operator(()local_variable($this)operator(->)ident(dirs)operator(,) delimiter(')string(sort_by_length)delimiter(')operator(\))operator(;) - ident(uksort)operator(()local_variable($this)operator(->)ident(files)operator(,) delimiter(')string(sort_by_length)delimiter(')operator(\))operator(;) + predefined(uksort)operator(()local_variable($this)operator(->)ident(dirs)operator(,) string<delimiter(')content(sort_by_length)delimiter(')>operator(\))operator(;) + predefined(uksort)operator(()local_variable($this)operator(->)ident(files)operator(,) string<delimiter(')content(sort_by_length)delimiter(')>operator(\))operator(;) comment(// Handle dirs) reserved(foreach)operator(()local_variable($this)operator(->)ident(dirs) reserved(as) local_variable($dir)operator(\)) operator({) - local_variable($dir) operator(.)operator(=) delimiter(')string(/)delimiter(')operator(;) + local_variable($dir) operator(.)operator(=) string<delimiter(')content(/)delimiter(')>operator(;) comment(// File part) comment(// Reset dir data) - local_variable($dir_data) operator(=) delimiter(')delimiter(')operator(;) + local_variable($dir_data) operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Local file header) - local_variable($dir_data) operator(.)operator(=) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x03)string(\\)string(x04)delimiter(")operator(;) comment(// Local file header signature) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(10)operator(\))operator(;) comment(// Version needed to extract) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Compression method) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// crc-32) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Compressed size) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Uncompressed size) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) ident(strlen)operator(()local_variable($dir)operator(\))operator(\))operator(;) comment(// File name length) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) + local_variable($dir_data) operator(.)operator(=) string<delimiter(")char(\\x50)char(\\x4b)char(\\x03)char(\\x04)delimiter(")>operator(;) comment(// Local file header signature) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(10)operator(\))operator(;) comment(// Version needed to extract) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Compression method) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// crc-32) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Compressed size) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Uncompressed size) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($dir)operator(\))operator(\))operator(;) comment(// File name length) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) local_variable($dir_data) operator(.)operator(=) local_variable($dir)operator(;) comment(// File name) - local_variable($dir_data) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// Extra field (is empty\)) + local_variable($dir_data) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Extra field (is empty\)) comment(// File data) - local_variable($dir_data) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// Dirs have no file data) + local_variable($dir_data) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Dirs have no file data) comment(// Data descriptor) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// crc-32) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Compressed size) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Uncompressed size) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// crc-32) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Compressed size) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Uncompressed size) comment(// Save current offset) - local_variable($offset) operator(=) ident(strlen)operator(()ident(implode)operator(()delimiter(')delimiter(')operator(,) local_variable($file_data)operator(\))operator(\))operator(;) + local_variable($offset) operator(=) predefined(strlen)operator(()predefined(implode)operator(()string<delimiter(')delimiter(')>operator(,) local_variable($file_data)operator(\))operator(\))operator(;) comment(// Append dir data to the file part) local_variable($file_data)operator([)operator(]) operator(=) local_variable($dir_data)operator(;) @@ -90,30 +90,30 @@ comment( )comment(*/) comment(// Central directory) comment(// Reset dir data) - local_variable($dir_data) operator(=) delimiter(')delimiter(')operator(;) + local_variable($dir_data) operator(=) string<delimiter(')delimiter(')>operator(;) comment(// File header) - local_variable($dir_data) operator(.)operator(=) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x01)string(\\)string(x02)delimiter(")operator(;) comment(// Local file header signature) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Version made by) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(10)operator(\))operator(;) comment(// Version needed to extract) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Compression method) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// crc-32) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Compressed size) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Uncompressed size) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) ident(strlen)operator(()local_variable($dir)operator(\))operator(\))operator(;) comment(// File name length) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// File comment length) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Disk number start) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Internal file attributes) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(16)operator(\))operator(;) comment(// External file attributes) - local_variable($dir_data) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) local_variable($offset)operator(\))operator(;) comment(// Relative offset of local header) + local_variable($dir_data) operator(.)operator(=) string<delimiter(")char(\\x50)char(\\x4b)char(\\x01)char(\\x02)delimiter(")>operator(;) comment(// Local file header signature) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Version made by) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(10)operator(\))operator(;) comment(// Version needed to extract) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Compression method) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// crc-32) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Compressed size) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Uncompressed size) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($dir)operator(\))operator(\))operator(;) comment(// File name length) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// File comment length) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Disk number start) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Internal file attributes) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(16)operator(\))operator(;) comment(// External file attributes) + local_variable($dir_data) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) local_variable($offset)operator(\))operator(;) comment(// Relative offset of local header) local_variable($dir_data) operator(.)operator(=) local_variable($dir)operator(;) comment(// File name) - local_variable($dir_data) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// Extra field (is empty\)) - local_variable($dir_data) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// File comment (is empty\)) + local_variable($dir_data) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Extra field (is empty\)) + local_variable($dir_data) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// File comment (is empty\)) comment(/*) comment( // Data descriptor) @@ -134,22 +134,22 @@ comment( )comment(*/) comment(// File part) comment(// Reset file data) - local_variable($fd) operator(=) delimiter(')delimiter(')operator(;) + local_variable($fd) operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Detect possible compressions) comment(// Use deflate) - reserved(if)operator(()ident(function_exists)operator(()delimiter(')string(gzdeflate)delimiter(')operator(\))operator(\)) operator({) + reserved(if)operator(()predefined(function_exists)operator(()string<delimiter(')content(gzdeflate)delimiter(')>operator(\))operator(\)) operator({) local_variable($method) operator(=) integer(8)operator(;) comment(// Compress file content) - local_variable($compressed_data) operator(=) ident(gzdeflate)operator(()local_variable($content)operator(\))operator(;) + local_variable($compressed_data) operator(=) predefined(gzdeflate)operator(()local_variable($content)operator(\))operator(;) comment(// Use bzip2) - operator(}) reserved(elseif)operator(()ident(function_exists)operator(()delimiter(')string(bzcompress)delimiter(')operator(\))operator(\)) operator({) + operator(}) reserved(elseif)operator(()predefined(function_exists)operator(()string<delimiter(')content(bzcompress)delimiter(')>operator(\))operator(\)) operator({) local_variable($method) operator(=) integer(12)operator(;) comment(// Compress file content) - local_variable($compressed_data) operator(=) ident(bzcompress)operator(()local_variable($content)operator(\))operator(;) + local_variable($compressed_data) operator(=) predefined(bzcompress)operator(()local_variable($content)operator(\))operator(;) comment(// No compression) operator(}) reserved(else) operator({) @@ -160,31 +160,31 @@ comment( )comment(*/) operator(}) comment(// Local file header) - local_variable($fd) operator(.)operator(=) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x03)string(\\)string(x04)delimiter(")operator(;) comment(// Local file header signature) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(20)operator(\))operator(;) comment(// Version needed to extract) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) local_variable($method)operator(\))operator(;) comment(// Compression method) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(crc32)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// crc-32) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($compressed_data)operator(\))operator(\))operator(;) comment(// Compressed size) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// Uncompressed size) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) ident(strlen)operator(()local_variable($name)operator(\))operator(\))operator(;) comment(// File name length) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) + local_variable($fd) operator(.)operator(=) string<delimiter(")char(\\x50)char(\\x4b)char(\\x03)char(\\x04)delimiter(")>operator(;) comment(// Local file header signature) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(20)operator(\))operator(;) comment(// Version needed to extract) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) local_variable($method)operator(\))operator(;) comment(// Compression method) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(crc32)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// crc-32) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($compressed_data)operator(\))operator(\))operator(;) comment(// Compressed size) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// Uncompressed size) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($name)operator(\))operator(\))operator(;) comment(// File name length) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) local_variable($fd) operator(.)operator(=) local_variable($name)operator(;) comment(// File name) - local_variable($fd) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// Extra field (is empty\)) + local_variable($fd) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Extra field (is empty\)) comment(// File data) local_variable($fd) operator(.)operator(=) local_variable($compressed_data)operator(;) comment(// Data descriptor) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(crc32)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// crc-32) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($compressed_data)operator(\))operator(\))operator(;) comment(// Compressed size) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// Uncompressed size) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(crc32)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// crc-32) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($compressed_data)operator(\))operator(\))operator(;) comment(// Compressed size) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// Uncompressed size) comment(// Save current offset) - local_variable($offset) operator(=) ident(strlen)operator(()ident(implode)operator(()delimiter(')delimiter(')operator(,) local_variable($file_data)operator(\))operator(\))operator(;) + local_variable($offset) operator(=) predefined(strlen)operator(()predefined(implode)operator(()string<delimiter(')delimiter(')>operator(,) local_variable($file_data)operator(\))operator(\))operator(;) comment(// Append file data to the file part) local_variable($file_data)operator([)operator(]) operator(=) local_variable($fd)operator(;) @@ -192,30 +192,30 @@ comment( )comment(*/) comment(// Central directory) comment(// Reset file data) - local_variable($fd) operator(=) delimiter(')delimiter(')operator(;) + local_variable($fd) operator(=) string<delimiter(')delimiter(')>operator(;) comment(// File header) - local_variable($fd) operator(.)operator(=) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x01)string(\\)string(x02)delimiter(")operator(;) comment(// Local file header signature) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Version made by) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(20)operator(\))operator(;) comment(// Version needed to extract) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) local_variable($method)operator(\))operator(;) comment(// Compression method) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(crc32)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// crc-32) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($compressed_data)operator(\))operator(\))operator(;) comment(// Compressed size) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// Uncompressed size) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) ident(strlen)operator(()local_variable($name)operator(\))operator(\))operator(;) comment(// File name length) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// File comment length) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Disk number start) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Internal file attributes) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) integer(32)operator(\))operator(;) comment(// External file attributes) - local_variable($fd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) local_variable($offset)operator(\))operator(;) comment(// Relative offset of local header) + local_variable($fd) operator(.)operator(=) string<delimiter(")char(\\x50)char(\\x4b)char(\\x01)char(\\x02)delimiter(")>operator(;) comment(// Local file header signature) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Version made by) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(20)operator(\))operator(;) comment(// Version needed to extract) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// General purpose bit flag) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) local_variable($method)operator(\))operator(;) comment(// Compression method) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file time) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Last mod file date) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(crc32)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// crc-32) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($compressed_data)operator(\))operator(\))operator(;) comment(// Compressed size) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($content)operator(\))operator(\))operator(;) comment(// Uncompressed size) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($name)operator(\))operator(\))operator(;) comment(// File name length) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Extra field length) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// File comment length) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Disk number start) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Internal file attributes) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) integer(32)operator(\))operator(;) comment(// External file attributes) + local_variable($fd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) local_variable($offset)operator(\))operator(;) comment(// Relative offset of local header) local_variable($fd) operator(.)operator(=) local_variable($name)operator(;) comment(// File name) - local_variable($fd) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// Extra field (is empty\)) - local_variable($fd) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// File comment (is empty\)) + local_variable($fd) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Extra field (is empty\)) + local_variable($fd) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// File comment (is empty\)) comment(/*) comment( // Data descriptor) @@ -229,26 +229,26 @@ comment( )comment(*/) operator(}) comment(// Digital signature) - local_variable($digital_signature) operator(=) delimiter(')delimiter(')operator(;) - local_variable($digital_signature) operator(.)operator(=) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x05)string(\\)string(x05)delimiter(")operator(;) comment(// Header signature) - local_variable($digital_signature) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Size of data) - local_variable($digital_signature) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// Signature data (is empty\)) + local_variable($digital_signature) operator(=) string<delimiter(')delimiter(')>operator(;) + local_variable($digital_signature) operator(.)operator(=) string<delimiter(")char(\\x50)char(\\x4b)char(\\x05)char(\\x05)delimiter(")>operator(;) comment(// Header signature) + local_variable($digital_signature) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Size of data) + local_variable($digital_signature) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// Signature data (is empty\)) - local_variable($tmp_file_data) operator(=) ident(implode)operator(()delimiter(')delimiter(')operator(,) local_variable($file_data)operator(\))operator(;) comment(// File data) - local_variable($tmp_cd_data) operator(=) ident(implode)operator(()delimiter(')delimiter(')operator(,) local_variable($cd_data)operator(\))operator(.) comment(// Central directory) + local_variable($tmp_file_data) operator(=) predefined(implode)operator(()string<delimiter(')delimiter(')>operator(,) local_variable($file_data)operator(\))operator(;) comment(// File data) + local_variable($tmp_cd_data) operator(=) predefined(implode)operator(()string<delimiter(')delimiter(')>operator(,) local_variable($cd_data)operator(\))operator(.) comment(// Central directory) local_variable($digital_signature)operator(;) comment(// Digital signature) comment(// End of central directory) - local_variable($eof_cd) operator(=) delimiter(')delimiter(')operator(;) - local_variable($eof_cd) operator(.)operator(=) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x05)string(\\)string(x06)delimiter(")operator(;) comment(// End of central dir signature) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Number of this disk) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// Number of the disk with the start of the central directory) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) ident(count)operator(()local_variable($cd_data)operator(\))operator(\))operator(;) comment(// Total number of entries in the central directory on this disk) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) ident(count)operator(()local_variable($cd_data)operator(\))operator(\))operator(;) comment(// Total number of entries in the central directory) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($tmp_cd_data)operator(\))operator(\))operator(;) comment(// Size of the central directory) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(V)delimiter(")operator(,) ident(strlen)operator(()local_variable($tmp_file_data)operator(\))operator(\))operator(;) comment(// Offset of start of central directory with respect to the starting disk number) - local_variable($eof_cd) operator(.)operator(=) ident(pack)operator(()delimiter(")string(v)delimiter(")operator(,) integer(0)operator(\))operator(;) comment(// .ZIP file comment length) - local_variable($eof_cd) operator(.)operator(=) delimiter(')delimiter(')operator(;) comment(// .ZIP file comment (is empty\)) + local_variable($eof_cd) operator(=) string<delimiter(')delimiter(')>operator(;) + local_variable($eof_cd) operator(.)operator(=) string<delimiter(")char(\\x50)char(\\x4b)char(\\x05)char(\\x06)delimiter(")>operator(;) comment(// End of central dir signature) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Number of this disk) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// Number of the disk with the start of the central directory) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) predefined(count)operator(()local_variable($cd_data)operator(\))operator(\))operator(;) comment(// Total number of entries in the central directory on this disk) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) predefined(count)operator(()local_variable($cd_data)operator(\))operator(\))operator(;) comment(// Total number of entries in the central directory) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($tmp_cd_data)operator(\))operator(\))operator(;) comment(// Size of the central directory) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(V)delimiter(")>operator(,) predefined(strlen)operator(()local_variable($tmp_file_data)operator(\))operator(\))operator(;) comment(// Offset of start of central directory with respect to the starting disk number) + local_variable($eof_cd) operator(.)operator(=) predefined(pack)operator(()string<delimiter(")content(v)delimiter(")>operator(,) integer(0)operator(\))operator(;) comment(// .ZIP file comment length) + local_variable($eof_cd) operator(.)operator(=) string<delimiter(')delimiter(')>operator(;) comment(// .ZIP file comment (is empty\)) comment(// Content of the zip file) local_variable($data) operator(=) local_variable($tmp_file_data)operator(.) @@ -258,10 +258,10 @@ comment( )comment(*/) comment(// Return content?) reserved(if)operator(()operator(!)local_variable($filename)operator(\)) - reserved(return) local_variable($data)operator(;) + predefined(return) local_variable($data)operator(;) comment(// Write to file) - reserved(return) ident(file_put_contents)operator(()local_variable($filename)operator(,) local_variable($data)operator(\))operator(;) + predefined(return) predefined(file_put_contents)operator(()local_variable($filename)operator(,) local_variable($data)operator(\))operator(;) operator(}) comment(/*)comment(*) @@ -276,20 +276,20 @@ comment( * @param bool $reset Reset the files and dirs before adding the z comment( *) comment( * @return bool Returns true if the file was loaded sucessfully) comment( )comment(*/) - pre_type(function) ident(load_file)operator(()local_variable($file)operator(,) local_variable($reset) operator(=) pre_type(true)operator(\)) operator({) + reserved(function) predefined(load_file)operator(()local_variable($file)operator(,) local_variable($reset) operator(=) reserved(true)operator(\)) operator({) comment(// Check whether the file exists) - reserved(if)operator(()operator(!)ident(file_exists)operator(()local_variable($file)operator(\))operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()operator(!)predefined(file_exists)operator(()local_variable($file)operator(\))operator(\)) + predefined(return) reserved(false)operator(;) comment(// Load the files content) - local_variable($content) operator(=) operator(@)ident(file_get_contents)operator(()local_variable($file)operator(\))operator(;) + local_variable($content) operator(=) operator(@)predefined(file_get_contents)operator(()local_variable($file)operator(\))operator(;) comment(// Return false if the file cannot be opened) reserved(if)operator(()operator(!)local_variable($content)operator(\)) - reserved(return) pre_type(false)operator(;) + predefined(return) reserved(false)operator(;) comment(// Read the zip) - reserved(return) local_variable($this)operator(->)ident(load_string)operator(()local_variable($content)operator(,) local_variable($reset)operator(\))operator(;) + predefined(return) local_variable($this)operator(->)ident(load_string)operator(()local_variable($content)operator(,) local_variable($reset)operator(\))operator(;) operator(}) comment(/*)comment(*) @@ -304,155 +304,155 @@ comment( * @param bool $reset Reset the files and dirs before adding the comment( *) comment( * @return bool Returns true if the string was loaded sucessfully) comment( )comment(*/) - pre_type(function) ident(load_string)operator(()local_variable($string)operator(,) local_variable($reset) operator(=) pre_type(true)operator(\)) operator({) + reserved(function) ident(load_string)operator(()local_variable($string)operator(,) local_variable($reset) operator(=) reserved(true)operator(\)) operator({) comment(// Reset the zip?) reserved(if)operator(()local_variable($reset)operator(\)) operator({) - local_variable($this)operator(->)ident(dirs) operator(=) pre_type(array)operator(()operator(\))operator(;) - local_variable($this)operator(->)ident(files) operator(=) pre_type(array)operator(()operator(\))operator(;) + local_variable($this)operator(->)ident(dirs) operator(=) predefined(array)operator(()operator(\))operator(;) + local_variable($this)operator(->)ident(files) operator(=) predefined(array)operator(()operator(\))operator(;) operator(}) comment(// Get the starting position of the end of central directory record) - local_variable($start) operator(=) ident(strpos)operator(()local_variable($string)operator(,) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x05)string(\\)string(x06)delimiter(")operator(\))operator(;) + local_variable($start) operator(=) predefined(strpos)operator(()local_variable($string)operator(,) string<delimiter(")char(\\x50)char(\\x4b)char(\\x05)char(\\x06)delimiter(")>operator(\))operator(;) comment(// Error) - reserved(if)operator(()local_variable($start) operator(===) pre_type(false)operator(\)) - reserved(die)operator(()delimiter(')string(Could not find the end of central directory record)delimiter(')operator(\))operator(;) + reserved(if)operator(()local_variable($start) operator(===) reserved(false)operator(\)) + predefined(die)operator(()string<delimiter(')content(Could not find the end of central directory record)delimiter(')>operator(\))operator(;) comment(// Get the ecdr) - local_variable($eof_cd) operator(=) ident(substr)operator(()local_variable($string)operator(,) local_variable($start)operator(+)integer(4)operator(,) integer(18)operator(\))operator(;) + local_variable($eof_cd) operator(=) predefined(substr)operator(()local_variable($string)operator(,) local_variable($start)operator(+)integer(4)operator(,) integer(18)operator(\))operator(;) comment(// Unpack the ecdr infos) - local_variable($eof_cd) operator(=) ident(unpack)operator(()delimiter(')string(vdisc1/)delimiter(')operator(.) - delimiter(')string(vdisc2/)delimiter(')operator(.) - delimiter(')string(ventries1/)delimiter(')operator(.) - delimiter(')string(ventries2/)delimiter(')operator(.) - delimiter(')string(Vsize/)delimiter(')operator(.) - delimiter(')string(Voffset/)delimiter(')operator(.) - delimiter(')string(vcomment_lenght)delimiter(')operator(,) local_variable($eof_cd)operator(\))operator(;) + local_variable($eof_cd) operator(=) predefined(unpack)operator(()string<delimiter(')content(vdisc1/)delimiter(')>operator(.) + string<delimiter(')content(vdisc2/)delimiter(')>operator(.) + string<delimiter(')content(ventries1/)delimiter(')>operator(.) + string<delimiter(')content(ventries2/)delimiter(')>operator(.) + string<delimiter(')content(Vsize/)delimiter(')>operator(.) + string<delimiter(')content(Voffset/)delimiter(')>operator(.) + string<delimiter(')content(vcomment_lenght)delimiter(')>operator(,) local_variable($eof_cd)operator(\))operator(;) comment(// Do not allow multi disc zips) - reserved(if)operator(()local_variable($eof_cd)operator([)delimiter(')string(disc1)delimiter(')operator(]) operator(!=) integer(0)operator(\)) - reserved(die)operator(()delimiter(')string(multi disk stuff is not yet implemented :/)delimiter(')operator(\))operator(;) + reserved(if)operator(()local_variable($eof_cd)operator([)string<delimiter(')content(disc1)delimiter(')>operator(]) operator(!=) integer(0)operator(\)) + predefined(die)operator(()string<delimiter(')content(multi disk stuff is not yet implemented :/)delimiter(')>operator(\))operator(;) comment(// Save the interesting values) - local_variable($cd_entries) operator(=) local_variable($eof_cd)operator([)delimiter(')string(entries1)delimiter(')operator(])operator(;) - local_variable($cd_size) operator(=) local_variable($eof_cd)operator([)delimiter(')string(size)delimiter(')operator(])operator(;) - local_variable($cd_offset) operator(=) local_variable($eof_cd)operator([)delimiter(')string(offset)delimiter(')operator(])operator(;) + local_variable($cd_entries) operator(=) local_variable($eof_cd)operator([)string<delimiter(')content(entries1)delimiter(')>operator(])operator(;) + local_variable($cd_size) operator(=) local_variable($eof_cd)operator([)string<delimiter(')content(size)delimiter(')>operator(])operator(;) + local_variable($cd_offset) operator(=) local_variable($eof_cd)operator([)string<delimiter(')content(offset)delimiter(')>operator(])operator(;) comment(// Get the central directory record) - local_variable($cdr) operator(=) ident(substr)operator(()local_variable($string)operator(,) local_variable($cd_offset)operator(,) local_variable($cd_size)operator(\))operator(;) + local_variable($cdr) operator(=) predefined(substr)operator(()local_variable($string)operator(,) local_variable($cd_offset)operator(,) local_variable($cd_size)operator(\))operator(;) comment(// Reset the position and the list of the entries) local_variable($pos) operator(=) integer(0)operator(;) - local_variable($entries) operator(=) pre_type(array)operator(()operator(\))operator(;) + local_variable($entries) operator(=) predefined(array)operator(()operator(\))operator(;) comment(// Handle cdr) - reserved(while)operator(()local_variable($pos) operator(<) ident(strlen)operator(()local_variable($cdr)operator(\))operator(\)) operator({) + reserved(while)operator(()local_variable($pos) operator(<) predefined(strlen)operator(()local_variable($cdr)operator(\))operator(\)) operator({) comment(// Check header signature) comment(// Digital signature) - reserved(if)operator(()ident(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) integer(4)operator(\)) operator(==) delimiter(")string(\\)string(x50)string(\\)string(x4b)string(\\)string(x05)string(\\)string(x05)delimiter(")operator(\)) operator({) + reserved(if)operator(()predefined(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) integer(4)operator(\)) operator(==) string<delimiter(")char(\\x50)char(\\x4b)char(\\x05)char(\\x05)delimiter(")>operator(\)) operator({) comment(// Get digital signature size) - local_variable($tmp_info) operator(=) ident(unpack)operator(()delimiter(')string(vsize)delimiter(')operator(,) ident(substr)operator(()local_variable($cdr)operator(,) local_variable($pos) operator(+) integer(4)operator(,) integer(2)operator(\))operator(\))operator(;) + local_variable($tmp_info) operator(=) predefined(unpack)operator(()string<delimiter(')content(vsize)delimiter(')>operator(,) predefined(substr)operator(()local_variable($cdr)operator(,) local_variable($pos) operator(+) integer(4)operator(,) integer(2)operator(\))operator(\))operator(;) comment(// Read out the digital signature) - local_variable($digital_sig) operator(=) ident(substr)operator(()local_variable($header)operator(,) local_variable($pos) operator(+) integer(6)operator(,) local_variable($tmp_info)operator([)delimiter(')string(size)delimiter(')operator(])operator(\))operator(;) + local_variable($digital_sig) operator(=) predefined(substr)operator(()local_variable($header)operator(,) local_variable($pos) operator(+) integer(6)operator(,) local_variable($tmp_info)operator([)string<delimiter(')content(size)delimiter(')>operator(])operator(\))operator(;) reserved(break)operator(;) operator(}) comment(// Get file header) - local_variable($header) operator(=) ident(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) integer(46)operator(\))operator(;) + local_variable($header) operator(=) predefined(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) integer(46)operator(\))operator(;) comment(// Unpack the header information) - local_variable($header_info) operator(=) operator(@)ident(unpack)operator(()delimiter(')string(Vheader/)delimiter(')operator(.) - delimiter(')string(vversion_made_by/)delimiter(')operator(.) - delimiter(')string(vversion_needed/)delimiter(')operator(.) - delimiter(')string(vgeneral_purpose/)delimiter(')operator(.) - delimiter(')string(vcompression_method/)delimiter(')operator(.) - delimiter(')string(vlast_mod_time/)delimiter(')operator(.) - delimiter(')string(vlast_mod_date/)delimiter(')operator(.) - delimiter(')string(Vcrc32/)delimiter(')operator(.) - delimiter(')string(Vcompressed_size/)delimiter(')operator(.) - delimiter(')string(Vuncompressed_size/)delimiter(')operator(.) - delimiter(')string(vname_length/)delimiter(')operator(.) - delimiter(')string(vextra_length/)delimiter(')operator(.) - delimiter(')string(vcomment_length/)delimiter(')operator(.) - delimiter(')string(vdisk_number/)delimiter(')operator(.) - delimiter(')string(vinternal_attributes/)delimiter(')operator(.) - delimiter(')string(Vexternal_attributes/)delimiter(')operator(.) - delimiter(')string(Voffset)delimiter(')operator(,) + local_variable($header_info) operator(=) operator(@)predefined(unpack)operator(()string<delimiter(')content(Vheader/)delimiter(')>operator(.) + string<delimiter(')content(vversion_made_by/)delimiter(')>operator(.) + string<delimiter(')content(vversion_needed/)delimiter(')>operator(.) + string<delimiter(')content(vgeneral_purpose/)delimiter(')>operator(.) + string<delimiter(')content(vcompression_method/)delimiter(')>operator(.) + string<delimiter(')content(vlast_mod_time/)delimiter(')>operator(.) + string<delimiter(')content(vlast_mod_date/)delimiter(')>operator(.) + string<delimiter(')content(Vcrc32/)delimiter(')>operator(.) + string<delimiter(')content(Vcompressed_size/)delimiter(')>operator(.) + string<delimiter(')content(Vuncompressed_size/)delimiter(')>operator(.) + string<delimiter(')content(vname_length/)delimiter(')>operator(.) + string<delimiter(')content(vextra_length/)delimiter(')>operator(.) + string<delimiter(')content(vcomment_length/)delimiter(')>operator(.) + string<delimiter(')content(vdisk_number/)delimiter(')>operator(.) + string<delimiter(')content(vinternal_attributes/)delimiter(')>operator(.) + string<delimiter(')content(Vexternal_attributes/)delimiter(')>operator(.) + string<delimiter(')content(Voffset)delimiter(')>operator(,) local_variable($header)operator(\))operator(;) comment(// Valid header?) - reserved(if)operator(()local_variable($header_info)operator([)delimiter(')string(header)delimiter(')operator(]) operator(!=) integer(33639248)operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()local_variable($header_info)operator([)string<delimiter(')content(header)delimiter(')>operator(]) operator(!=) integer(33639248)operator(\)) + predefined(return) reserved(false)operator(;) comment(// New position) local_variable($pos) operator(+)operator(=) integer(46)operator(;) comment(// Read out the file name) - local_variable($header_info)operator([)delimiter(')string(name)delimiter(')operator(]) operator(=) ident(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) local_variable($header_info)operator([)delimiter(')string(name_length)delimiter(')operator(])operator(\))operator(;) + local_variable($header_info)operator([)string<delimiter(')content(name)delimiter(')>operator(]) operator(=) predefined(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) local_variable($header_info)operator([)string<delimiter(')content(name_length)delimiter(')>operator(])operator(\))operator(;) comment(// New position) - local_variable($pos) operator(+)operator(=) local_variable($header_info)operator([)delimiter(')string(name_length)delimiter(')operator(])operator(;) + local_variable($pos) operator(+)operator(=) local_variable($header_info)operator([)string<delimiter(')content(name_length)delimiter(')>operator(])operator(;) comment(// Read out the extra stuff) - local_variable($header_info)operator([)delimiter(')string(extra)delimiter(')operator(]) operator(=) ident(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) local_variable($header_info)operator([)delimiter(')string(extra_length)delimiter(')operator(])operator(\))operator(;) + local_variable($header_info)operator([)string<delimiter(')content(extra)delimiter(')>operator(]) operator(=) predefined(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) local_variable($header_info)operator([)string<delimiter(')content(extra_length)delimiter(')>operator(])operator(\))operator(;) comment(// New position) - local_variable($pos) operator(+)operator(=) local_variable($header_info)operator([)delimiter(')string(extra_length)delimiter(')operator(])operator(;) + local_variable($pos) operator(+)operator(=) local_variable($header_info)operator([)string<delimiter(')content(extra_length)delimiter(')>operator(])operator(;) comment(// Read out the comment) - local_variable($header_info)operator([)delimiter(')string(comment)delimiter(')operator(]) operator(=) ident(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) local_variable($header_info)operator([)delimiter(')string(comment_length)delimiter(')operator(])operator(\))operator(;) + local_variable($header_info)operator([)string<delimiter(')content(comment)delimiter(')>operator(]) operator(=) predefined(substr)operator(()local_variable($cdr)operator(,) local_variable($pos)operator(,) local_variable($header_info)operator([)string<delimiter(')content(comment_length)delimiter(')>operator(])operator(\))operator(;) comment(// New position) - local_variable($pos) operator(+)operator(=) local_variable($header_info)operator([)delimiter(')string(comment_length)delimiter(')operator(])operator(;) + local_variable($pos) operator(+)operator(=) local_variable($header_info)operator([)string<delimiter(')content(comment_length)delimiter(')>operator(])operator(;) comment(// Append this file/dir to the entry list) local_variable($entries)operator([)operator(]) operator(=) local_variable($header_info)operator(;) operator(}) comment(// Check whether all entries where read sucessfully) - reserved(if)operator(()ident(count)operator(()local_variable($entries)operator(\)) operator(!=) local_variable($cd_entries)operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()predefined(count)operator(()local_variable($entries)operator(\)) operator(!=) local_variable($cd_entries)operator(\)) + predefined(return) reserved(false)operator(;) comment(// Handle files/dirs) reserved(foreach)operator(()local_variable($entries) reserved(as) local_variable($entry)operator(\)) operator({) comment(// Is a dir?) - reserved(if)operator(()local_variable($entry)operator([)delimiter(')string(external_attributes)delimiter(')operator(]) operator(&) integer(16)operator(\)) operator({) - local_variable($this)operator(->)ident(add_dir)operator(()local_variable($entry)operator([)delimiter(')string(name)delimiter(')operator(])operator(\))operator(;) + reserved(if)operator(()local_variable($entry)operator([)string<delimiter(')content(external_attributes)delimiter(')>operator(]) operator(&) integer(16)operator(\)) operator({) + local_variable($this)operator(->)ident(add_dir)operator(()local_variable($entry)operator([)string<delimiter(')content(name)delimiter(')>operator(])operator(\))operator(;) reserved(continue)operator(;) operator(}) comment(// Get local file header) - local_variable($header) operator(=) ident(substr)operator(()local_variable($string)operator(,) local_variable($entry)operator([)delimiter(')string(offset)delimiter(')operator(])operator(,) integer(30)operator(\))operator(;) + local_variable($header) operator(=) predefined(substr)operator(()local_variable($string)operator(,) local_variable($entry)operator([)string<delimiter(')content(offset)delimiter(')>operator(])operator(,) integer(30)operator(\))operator(;) comment(// Unpack the header information) - local_variable($header_info) operator(=) operator(@)ident(unpack)operator(()delimiter(')string(Vheader/)delimiter(')operator(.) - delimiter(')string(vversion_needed/)delimiter(')operator(.) - delimiter(')string(vgeneral_purpose/)delimiter(')operator(.) - delimiter(')string(vcompression_method/)delimiter(')operator(.) - delimiter(')string(vlast_mod_time/)delimiter(')operator(.) - delimiter(')string(vlast_mod_date/)delimiter(')operator(.) - delimiter(')string(Vcrc32/)delimiter(')operator(.) - delimiter(')string(Vcompressed_size/)delimiter(')operator(.) - delimiter(')string(Vuncompressed_size/)delimiter(')operator(.) - delimiter(')string(vname_length/)delimiter(')operator(.) - delimiter(')string(vextra_length)delimiter(')operator(,) + local_variable($header_info) operator(=) operator(@)predefined(unpack)operator(()string<delimiter(')content(Vheader/)delimiter(')>operator(.) + string<delimiter(')content(vversion_needed/)delimiter(')>operator(.) + string<delimiter(')content(vgeneral_purpose/)delimiter(')>operator(.) + string<delimiter(')content(vcompression_method/)delimiter(')>operator(.) + string<delimiter(')content(vlast_mod_time/)delimiter(')>operator(.) + string<delimiter(')content(vlast_mod_date/)delimiter(')>operator(.) + string<delimiter(')content(Vcrc32/)delimiter(')>operator(.) + string<delimiter(')content(Vcompressed_size/)delimiter(')>operator(.) + string<delimiter(')content(Vuncompressed_size/)delimiter(')>operator(.) + string<delimiter(')content(vname_length/)delimiter(')>operator(.) + string<delimiter(')content(vextra_length)delimiter(')>operator(,) local_variable($header)operator(\))operator(;) comment(// Valid header?) - reserved(if)operator(()local_variable($header_info)operator([)delimiter(')string(header)delimiter(')operator(]) operator(!=) integer(67324752)operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()local_variable($header_info)operator([)string<delimiter(')content(header)delimiter(')>operator(]) operator(!=) integer(67324752)operator(\)) + predefined(return) reserved(false)operator(;) comment(// Get content start position) - local_variable($start) operator(=) local_variable($entry)operator([)delimiter(')string(offset)delimiter(')operator(]) operator(+) integer(30) operator(+) local_variable($header_info)operator([)delimiter(')string(name_length)delimiter(')operator(]) operator(+) local_variable($header_info)operator([)delimiter(')string(extra_length)delimiter(')operator(])operator(;) + local_variable($start) operator(=) local_variable($entry)operator([)string<delimiter(')content(offset)delimiter(')>operator(]) operator(+) integer(30) operator(+) local_variable($header_info)operator([)string<delimiter(')content(name_length)delimiter(')>operator(]) operator(+) local_variable($header_info)operator([)string<delimiter(')content(extra_length)delimiter(')>operator(])operator(;) comment(// Get the compressed data) - local_variable($data) operator(=) ident(substr)operator(()local_variable($string)operator(,) local_variable($start)operator(,) local_variable($header_info)operator([)delimiter(')string(compressed_size)delimiter(')operator(])operator(\))operator(;) + local_variable($data) operator(=) predefined(substr)operator(()local_variable($string)operator(,) local_variable($start)operator(,) local_variable($header_info)operator([)string<delimiter(')content(compressed_size)delimiter(')>operator(])operator(\))operator(;) comment(// Detect compression type) - reserved(switch)operator(()local_variable($header_info)operator([)delimiter(')string(compression_method)delimiter(')operator(])operator(\)) operator({) + reserved(switch)operator(()local_variable($header_info)operator([)string<delimiter(')content(compression_method)delimiter(')>operator(])operator(\)) operator({) comment(// No compression) reserved(case) integer(0)operator(:) comment(// Ne decompression needed) @@ -461,38 +461,38 @@ comment( )comment(*/) comment(// Gzip) reserved(case) integer(8)operator(:) - reserved(if)operator(()operator(!)ident(function_exists)operator(()delimiter(')string(gzinflate)delimiter(')operator(\))operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()operator(!)predefined(function_exists)operator(()string<delimiter(')content(gzinflate)delimiter(')>operator(\))operator(\)) + predefined(return) reserved(false)operator(;) comment(// Uncompress data) - local_variable($content) operator(=) ident(gzinflate)operator(()local_variable($data)operator(\))operator(;) + local_variable($content) operator(=) predefined(gzinflate)operator(()local_variable($data)operator(\))operator(;) reserved(break)operator(;) comment(// Bzip2) reserved(case) integer(12)operator(:) - reserved(if)operator(()operator(!)ident(function_exists)operator(()delimiter(')string(bzdecompress)delimiter(')operator(\))operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()operator(!)predefined(function_exists)operator(()string<delimiter(')content(bzdecompress)delimiter(')>operator(\))operator(\)) + predefined(return) reserved(false)operator(;) comment(// Decompress data) - local_variable($content) operator(=) ident(bzdecompress)operator(()local_variable($data)operator(\))operator(;) + local_variable($content) operator(=) predefined(bzdecompress)operator(()local_variable($data)operator(\))operator(;) reserved(break)operator(;) comment(// Compression not supported -> error) reserved(default)operator(:) - reserved(return) pre_type(false)operator(;) + predefined(return) reserved(false)operator(;) operator(}) comment(// Try to add file) - reserved(if)operator(()operator(!)local_variable($this)operator(->)ident(add_file)operator(()local_variable($entry)operator([)delimiter(')string(name)delimiter(')operator(])operator(,) local_variable($content)operator(\))operator(\)) - reserved(return) pre_type(false)operator(;) + reserved(if)operator(()operator(!)local_variable($this)operator(->)ident(add_file)operator(()local_variable($entry)operator([)string<delimiter(')content(name)delimiter(')>operator(])operator(,) local_variable($content)operator(\))operator(\)) + predefined(return) reserved(false)operator(;) operator(}) - reserved(return) pre_type(true)operator(;) + predefined(return) reserved(true)operator(;) operator(}) operator(}) -pre_type(function) operator(&)ident(byref)operator(()operator(\)) operator({) - local_variable($x) operator(=) pre_type(array)operator(()operator(\))operator(;) - reserved(return) local_variable($x)operator(;) +reserved(function) operator(&)ident(byref)operator(()operator(\)) operator({) + local_variable($x) operator(=) predefined(array)operator(()operator(\))operator(;) + predefined(return) local_variable($x)operator(;) operator(}) -delimiter(?>) +inline_delimiter(?>) |