!************************************************************************* ! * ! © Copyright 2005 Hewlett-Packard Development Company, L.P. * ! * ! Confidential computer software. Valid license from HP required for * ! possession, use or copying. Consistent with FAR 12.211 and 12.212, * ! Commercial Computer Software, Computer Software Documentation, and * ! Technical Data for Commercial Items are licensed to the U.S. * ! Government under vendor's standard commercial license. * ! * !************************************************************************* ! ! Facility: ! Perl template ! ! Abstract: ! perl language definition ! ! Author: ! Ron Lusk ! ! Creation Date: 21-Aug-1996 ! ! Modification History: ! DELETE LANGUAGE perl DEFINE LANGUAGE perl - /CAPABILITIES=DIAGNOSTICS - /COMMENT=(TRAILING=("#" )) - /COMPILE_COMMAND="perl rl_system:perldiag.pl" - /EXPAND_CASE=AS_IS - /FILE_TYPES=(".pl", ".pm")- /IDENTIFIER_CHARACTERS=- "$%*@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_1234567890" - /INITIAL_STRING="{@perl@}" - /LEFT_MARGIN=CONTEXT_DEPENDENT - /PLACEHOLDER_DELIMITERS=(REQUIRED =("{@", "@}"), - REQUIRED_LIST=("{@", "@}..."), - OPTIONAL =("[@", "@]"), - OPTIONAL_LIST=("[@", "@]..."), - PSEUDOCODE =("«", "»")) - /PUNCTUATION_CHARACTERS="(){}/,.+-""';" - /QUOTED_ITEM=(QUOTE="""'`", ESCAPES="\") - /RIGHT_MARGIN=78 - /TAB_INCREMENT=4 - /VERSION="v5.0002" - /WRAP SET LANGUAGE perl DELETE PLACEHOLDER "perl" DEFINE PLACEHOLDER "perl" - /TYPE=NONTERMINAL "#!perl [@-w@]" "" "{@perl-module@}" "" "1; # for required packages" END DEFINE DELETE PLACEHOLDER "perl-module" DEFINE PLACEHOLDER "perl-module" - /TYPE=MENU "perl-program" /PLACEHOLDER "perl-package" /PLACEHOLDER "perl-class" /PLACEHOLDER END DEFINE DELETE PLACEHOLDER "perl-program" DEFINE PLACEHOLDER "perl-program" - /DESCRIPTION="A free-standing perl program" - /TYPE=NONTERMINAL "[@use-declaration@]..." "" "{@construct@}..." "" "exit;" "" "[@BEGIN subroutine@]..." "" "[@subroutine-definition@]..." "" "[@END subroutine@]..." END DEFINE DELETE PLACEHOLDER "class-comments" DEFINE PLACEHOLDER "class-comments" - /TYPE=NONTERMINAL " " "Class: {@class-name@}" " " "Responsibilities:" " {@tbs@}..." " " END DEFINE DELETE PLACEHOLDER "method-comments" DEFINE PLACEHOLDER "method-comments" - /TYPE=NONTERMINAL " " " Class: {@class-name@}" " Method: {@method-name@}" " " " Responsibilities:" " {@tbs@}..." " " " Arguments used:" " {@args-or-none@}" " " END DEFINE DELETE PLACEHOLDER "sub-comments" DEFINE PLACEHOLDER "sub-comments" - /TYPE=NONTERMINAL " " " Subroutine: {@sub-name@}" " " " Responsibilities:" " {@tbs@}..." " " " Arguments used:" " {@args-or-none@}" " " END DEFINE DELETE PLACEHOLDER "args-or-none" DEFINE PLACEHOLDER "args-or-none" - /TYPE=MENU "None" /DESCRIPTION="Method uses no arguments" "arg-description" /LIST/PLACEHOLDER END DEFINE DELETE PLACEHOLDER "arg-description" DEFINE PLACEHOLDER "arg-description" - /DESCRIPTION="Description of an argument" - /TYPE=TERMINAL "Documentation about a method's use of an argument" END DEFINE DELETE PLACEHOLDER "perl-package" DEFINE PLACEHOLDER "perl-package" - /DESCRIPTION="A perl package: subroutines, whatever" - /TYPE=NONTERMINAL "{@package@}" "[@public-symbols@]" "" "[@use-declaration@]..." "" "[@construct@]..." "" "[@BEGIN subroutine@]..." "" "[@subroutine-definition@]..." "" "[@END subroutine@]..." "" END DEFINE DELETE PLACEHOLDER "perl-class" DEFINE PLACEHOLDER "perl-class" - /DESCRIPTION="A package defining a perl class" - /TYPE=NONTERMINAL "{@package@}" "# [@class-comments@]" "" "[@use-declaration@]..." "" "[@ISA-declaration@]" "" "[@construct@]..." "" "[@ctor-definition@]" "" "[@dtor-definition@]" "" "[@accessor-definition@]..." "" "[@setget-definition@]..." "" "[@method-definition@]..." "" "[@BEGIN subroutine@]..." "" "[@END subroutine@]..." "" "[@subroutine-definition@]..." "" END DEFINE DELETE PLACEHOLDER "-w" DEFINE PLACEHOLDER "-w" - /TYPE=NONTERMINAL "-w" END DEFINE DELETE PLACEHOLDER "construct" DEFINE PLACEHOLDER "construct" - /DUPLICATION=VERTICAL - /TYPE=MENU "statement [modifier]" /PLACEHOLDER "if" /TOKEN "unless-stmt" /TOKEN "while" /TOKEN "until" /TOKEN "for-loop" /TOKEN "foreach" /TOKEN "{" /TOKEN "do-while" /TOKEN "do-until" /TOKEN "package" /TOKEN "use" /TOKEN "sub" /TOKEN ! [menu placeholder body line]... END DEFINE DELETE PLACEHOLDER "statement [modifier]" DEFINE PLACEHOLDER "statement [modifier]" - /DESCRIPTION="Statement with optional modifier" - /TYPE=NONTERMINAL "{@statement@} [@modifier@];" END DEFINE DELETE PLACEHOLDER "statement" DEFINE PLACEHOLDER "statement" - /DESCRIPTION="More-or-less standalone statement" - /TYPE=MENU "expr" /PLACEHOLDER/LIST "next" /TOKEN "last" /TOKEN "return" /TOKEN "redo" /TOKEN "goto" /TOKEN ! [menu placeholder body line]... END DEFINE DELETE PLACEHOLDER "expr" DEFINE PLACEHOLDER "expr" - /DESCRIPTION="An expression of some sort" - /DUPLICATION=HORIZONTAL - /SEPARATOR=", " - /TYPE=MENU "tbs" /PLACEHOLDER/DESCRIPTION="What you will" "invoke-method" /TOKEN "call" /TOKEN "function" /PLACEHOLDER ! [menu placeholder body line]... END DEFINE DELETE PLACEHOLDER "tbs" DEFINE PLACEHOLDER "tbs" - /TYPE=TERMINAL "What you will..." END DEFINE DELETE PLACEHOLDER "lse-tbs" DEFINE PLACEHOLDER "lse-tbs" - /TYPE=TERMINAL "Stuff to be improved in LSE template" END DEFINE DELETE TOKEN "if" DEFINE TOKEN "if" - /DESCRIPTION="if statement" "if ({@expr@}...){" " [@my-def@]..." " {@construct@}..." "}" "[@elsif@]..." "[@else@]" END DEFINE DELETE PLACEHOLDER "elsif" DEFINE PLACEHOLDER "elsif" - /DUPLICATION=VERTICAL - /TYPE=NONTERMINAL "elsif ({@expr@}...) {" " [@my-def@]..." " {@construct@}..." "}" END DEFINE DELETE TOKEN "elsif" DEFINE TOKEN "elsif" - /PLACEHOLDER="elsif" DELETE PLACEHOLDER "else" DEFINE PLACEHOLDER "else" - /TYPE=NONTERMINAL "else {" " [@my-def@]..." " {@construct@}..." "}" END DEFINE DELETE TOKEN "else" DEFINE TOKEN "else" - /PLACEHOLDER="else" DELETE TOKEN "unless-stmt" DEFINE TOKEN "unless-stmt" - /DESCRIPTION="Negated if, sort of" "unless ({@expr@}...) {" " [@my-def@]..." " {@construct@}..." "}" "[@else@]" END DEFINE DELETE TOKEN "while" DEFINE TOKEN "while" - /DESCRIPTION="Repeat while true" "while ({@expr@}...) {" " [@my-def@]..." " {@construct@}..." "}" "[@continue-block@]" END DEFINE DELETE PLACEHOLDER "continue-block" DEFINE PLACEHOLDER "continue-block" - /TYPE=NONTERMINAL "continue {" " [@my-def@]..." " {@construct@}..." "}" END DEFINE DELETE TOKEN "until" DEFINE TOKEN "until" - /DESCRIPTION="Repeat until true" "until ({@expr@}...) {" " [@my-def@]..." " {@construct@}..." "}" "[@continue-block@]" END DEFINE DELETE TOKEN "for-loop" DEFINE TOKEN "for-loop" - /DESCRIPTION="C-style for loop" "for([@expr@]; [@expr@]; [@expr@]){" " [@my-def@]..." " {@construct@}..." "}" END DEFINE DELETE TOKEN "foreach" DEFINE TOKEN "foreach" - /DESCRIPTION="for-each thing in a list" "foreach [@$_var@] {@list@}{" " [@my-def@]..." " {@construct@}..." "}" END DEFINE DELETE PLACEHOLDER "$_var" DEFINE PLACEHOLDER "$_var" - /TYPE=TERMINAL "Optional variable: if omitted, uses $_" END DEFINE DELETE PLACEHOLDER "list" DEFINE PLACEHOLDER "list" - /DESCRIPTION="List of things" - /TYPE=NONTERMINAL "([@expr@]...)" END DEFINE DELETE PLACEHOLDER "block" DEFINE PLACEHOLDER "block" - /DESCRIPTION="A block" - /TYPE=NONTERMINAL "[@block-label@]" "{" " [@my-def@]..." " {@construct@}..." "}" "[@continue-block@]" END DEFINE DELETE PLACEHOLDER "block-label" DEFINE PLACEHOLDER "block-label" - /TYPE=NONTERMINAL "{@label@}:" END DEFINE DELETE TOKEN "{" DEFINE TOKEN "{" - /PLACEHOLDER="block" DELETE TOKEN "return" DEFINE TOKEN "return" - /DESCRIPTION="Return from a subroutine" "return [@expr@]" END DEFINE DELETE TOKEN "goto" DEFINE TOKEN "goto" - /DESCRIPTION="Go to a label" "goto {@label@}" END DEFINE DELETE PLACEHOLDER "label" DEFINE PLACEHOLDER "label" - /TYPE=TERMINAL "A label" END DEFINE DELETE TOKEN "last" DEFINE TOKEN "last" - /DESCRIPTION="Exit nearest or named loop" "last [@label@]" END DEFINE DELETE TOKEN "next" DEFINE TOKEN "next" - /DESCRIPTION="Start next iteration of nearest or named loop" "next [@label@]" END DEFINE DELETE TOKEN "redo" DEFINE TOKEN "redo" - /DESCRIPTION="Start loop at top" "redo [@label@]" END DEFINE DELETE TOKEN "do-while" DEFINE TOKEN "do-while" - /DESCRIPTION="Repeat block while true" "do {" " [@my-def@]..." " {@construct@}..." "} while {@expr@};" END DEFINE DELETE TOKEN "do-until" DEFINE TOKEN "do-until" - /DESCRIPTION="Repeat block until true" "do {" " [@my-def@]..." " {@construct@}..." "} until {@expr@};" END DEFINE DELETE TOKEN "call" DEFINE TOKEN "call" - /DESCRIPTION="Execute a subroutine" "&{@subroutine-name@} [@list@]" END DEFINE DELETE PLACEHOLDER "subroutine-name" DEFINE PLACEHOLDER "subroutine-name" - /TYPE=TERMINAL "Name of a subroutine to invoke" END DEFINE DELETE TOKEN "bless" DEFINE TOKEN "bless" - /DESCRIPTION="Turn reference into an object" "bless {@ref@},[@opt-package@]" END DEFINE DELETE PLACEHOLDER "ref" DEFINE PLACEHOLDER "ref" - /TYPE=TERMINAL "An object reference" END DEFINE DELETE PLACEHOLDER "opt-package" DEFINE PLACEHOLDER "opt-package" - /LEADING="," - /TYPE=TERMINAL "Package to bless an object into" END DEFINE DELETE PLACEHOLDER "package" DEFINE PLACEHOLDER "package" - /DESCRIPTION="Remainder of current block is a package" - /TYPE=NONTERMINAL "package {@package-name@};" END DEFINE DELETE TOKEN "package" DEFINE TOKEN "package" - /PLACEHOLDER="package" DELETE PLACEHOLDER "package-name" DEFINE PLACEHOLDER "package-name" - /TYPE=TERMINAL "Name of a package" END DEFINE DELETE PLACEHOLDER "subroutine-definition" DEFINE PLACEHOLDER "subroutine-definition" - /DESCRIPTION="Subroutine definition" - /TYPE=NONTERMINAL "# [@sub-comments@]" "sub {@sub-name@} {" " [@unmarshal-args@]" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE PLACEHOLDER "dtor-definition" DEFINE PLACEHOLDER "dtor-definition" - /DESCRIPTION="Destructor definition" - /TYPE=NONTERMINAL "# [@method-comments@]" "# [@method-comments@]" "sub DESTROY {" " my $self = shift;" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE TOKEN "dtor" DEFINE TOKEN "dtor" - /PLACEHOLDER="dtor-definition" DELETE PLACEHOLDER "BEGIN subroutine" DEFINE PLACEHOLDER "BEGIN subroutine" - /DESCRIPTION="Package initializer" - /TYPE=NONTERMINAL "sub BEGIN {" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE TOKEN "BEGIN" DEFINE TOKEN "BEGIN" - /PLACEHOLDER="BEGIN subroutine" DELETE PLACEHOLDER "END subroutine" DEFINE PLACEHOLDER "END subroutine" - /DESCRIPTION="Package exit handler/destructor" - /TYPE=NONTERMINAL "sub END {" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE TOKEN "BEGIN" DEFINE TOKEN "BEGIN" - /PLACEHOLDER="BEGIN subroutine" DELETE PLACEHOLDER "ctor-definition" DEFINE PLACEHOLDER "ctor-definition" - /DESCRIPTION="Constructor definition" - /TYPE=NONTERMINAL "# [@method-comments@]" "sub new {" " my $this = shift;" " my $class;" " my $self;" " if (ref $this){" " $class = ref($this);" " $self = $this;" " }" " else {" " $class = $this;" " $self = {};" " bless $self, $class;" " }" " my %params = @_;" " [@superclass-construction@]..." " [@arg-check@]..." " [@arg-assign@]..." " [@ctor-var-init@]..." " [@my-def@]..." " [@initialize-self@]" " [@construct@]..." " $self;" "}" "" END DEFINE DELETE TOKEN "ctor" DEFINE TOKEN "ctor" - /PLACEHOLDER="ctor-definition" DELETE PLACEHOLDER "superclass-construction" DEFINE PLACEHOLDER "superclass-construction" - /TYPE=NONTERMINAL "$self->{@superclass-ID@}::new(@_);" END DEFINE DELETE PLACEHOLDER "superclass-ID" DEFINE PLACEHOLDER "superclass-ID" - /TYPE=MENU "SUPER" /DESCRIPTION="Pseudonym for superclass" "superclass" /PLACEHOLDER END DEFINE DELETE PLACEHOLDER "arg-check" DEFINE PLACEHOLDER "arg-check" - /TYPE=NONTERMINAL "warn ""Argument '{@missing@}' missing in ${class}::new\n""" " unless exists $params{{@missing@}};" END DEFINE DELETE PLACEHOLDER "missing" DEFINE PLACEHOLDER "missing" - /AUTO_SUBSTITUTE - /TYPE=TERMINAL "Name of argument to check for" END DEFINE DELETE PLACEHOLDER "arg-assign" DEFINE PLACEHOLDER "arg-assign" - /TYPE=NONTERMINAL "$self->{{@ctor-arg@}} = $params{{@ctor-arg@}};" END DEFINE DELETE PLACEHOLDER "ctor-arg" DEFINE PLACEHOLDER "ctor-arg" - /AUTO_SUBSTITUTE - /TYPE=TERMINAL "Name of argument to constructor" END DEFINE DELETE PLACEHOLDER "initialize-self" DEFINE PLACEHOLDER "initialize-self" - /TYPE=NONTERMINAL "$self->_initialize([@tbs@]);" END DEFINE DELETE PLACEHOLDER "initializer" DEFINE PLACEHOLDER "initializer" - /TYPE=NONTERMINAL "# [@method-comments@]" "sub _initialize {" " my $self = shift;" " [@unmarshal-args@]" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE TOKEN "_initialize" DEFINE TOKEN "_initialize" - /PLACEHOLDER="initializer" DELETE TOKEN "new" DEFINE TOKEN "new" - /DESCRIPTION="Allocate new instance of class" "new {@class-name@} ([@ctor-actual@]...)" END DEFINE DELETE PLACEHOLDER "class-name" DEFINE PLACEHOLDER "class-name" - /TYPE=TERMINAL "Name of a class" END DEFINE DELETE PLACEHOLDER "ctor-actual" DEFINE PLACEHOLDER "ctor-actual" - /DUPLICATION=VERTICAL - /SEPARATOR=", " - /TYPE=NONTERMINAL "{@ctor-kw@} => {@ctor-arg-value@}" END DEFINE DELETE PLACEHOLDER "ctor-kw" DEFINE PLACEHOLDER "ctor-kw" - /TYPE=TERMINAL "Keyword (in the case expected) for a constructor argument" END DEFINE DELETE PLACEHOLDER "ctor-arg-value" DEFINE PLACEHOLDER "ctor-arg-value" - /DESCRIPTION="Value for a constructor actual argument" - /TYPE=NONTERMINAL "{@expr@}" END DEFINE DELETE PLACEHOLDER "superclass" DEFINE PLACEHOLDER "superclass" - /TYPE=TERMINAL "Name of a superclass" END DEFINE DELETE PLACEHOLDER "method-definition" DEFINE PLACEHOLDER "method-definition" - /TYPE=MENU "instance-method" /PLACEHOLDER "class-method" /PLACEHOLDER END DEFINE DELETE PLACEHOLDER "instance-method" DEFINE PLACEHOLDER "instance-method" - /DESCRIPTION="Instance method definition" - /TYPE=NONTERMINAL "# [@method-comments@]" "sub {@method-name@} {" " my $self = shift;" " [@unmarshal-args@]" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE PLACEHOLDER "class-method" DEFINE PLACEHOLDER "class-method" - /DESCRIPTION="Class method definition" - /TYPE=NONTERMINAL "# [@method-comments@]" "sub {@method-name@} {" " my $class = shift;" " [@unmarshal-args@]" " [@my-def@]..." " {@construct@}..." "}" "" END DEFINE DELETE TOKEN "sub" DEFINE TOKEN "sub" - /PLACEHOLDER="subroutine-definition" DELETE PLACEHOLDER "sub-name" DEFINE PLACEHOLDER "sub-name" - /AUTO_SUBSTITUTE - /TYPE=TERMINAL "Name of a subroutine" END DEFINE DELETE PLACEHOLDER "method-name" DEFINE PLACEHOLDER "method-name" - /AUTO_SUBSTITUTE - /TYPE=TERMINAL "Name of a method" END DEFINE DELETE PLACEHOLDER "my-def" DEFINE PLACEHOLDER "my-def" - /TYPE=MENU "my-list" /PLACEHOLDER "my-var" /PLACEHOLDER END DEFINE DELETE PLACEHOLDER "my-var" DEFINE PLACEHOLDER "my-var" - /DESCRIPTION="Declaration/init of local variable" - /TYPE=NONTERMINAL "my {@var@} [@my-init@];" END DEFINE DELETE TOKEN "my" DEFINE TOKEN "my" - /PLACEHOLDER="my-def" DELETE PLACEHOLDER "var" DEFINE PLACEHOLDER "var" - /TYPE=TERMINAL "Variable name" END DEFINE DELETE PLACEHOLDER "my-init" DEFINE PLACEHOLDER "my-init" - /TYPE=NONTERMINAL "= {@expr@}" END DEFINE DELETE TOKEN "(" DEFINE TOKEN "(" - /DESCRIPTION="List" "([@expr@]...)" END DEFINE DELETE PLACEHOLDER "my-list" DEFINE PLACEHOLDER "my-list" - /DESCRIPTION="Declaration/init of local list of variables" - /TYPE=NONTERMINAL "my {@list@} [@my-init@];" END DEFINE DELETE PLACEHOLDER "unmarshal-args" DEFINE PLACEHOLDER "unmarshal-args" - /TYPE=NONTERMINAL "my ({@expr@}...) = @_;" END DEFINE DELETE PLACEHOLDER "use-declaration" DEFINE PLACEHOLDER "use-declaration" - /DESCRIPTION="Use declarations in another package" - /TYPE=NONTERMINAL "use {@module-spec@};" END DEFINE DELETE TOKEN "use" DEFINE TOKEN "use" - /PLACEHOLDER="use-declaration" DELETE PLACEHOLDER "module-spec" DEFINE PLACEHOLDER "module-spec" - /TYPE=TERMINAL "Module specification, such as VMS::Stdio, or strict" END DEFINE DELETE PLACEHOLDER "modifier" DEFINE PLACEHOLDER "modifier" - /DESCRIPTION="Conditional modifier for an expr" - /DUPLICATION=HORIZONTAL - /TYPE=NONTERMINAL "{@relator@} {@expr@}" END DEFINE DELETE PLACEHOLDER "relator" DEFINE PLACEHOLDER "relator" - /DESCRIPTION="Relates two expressions conditionally" - /TYPE=MENU "if" /DESCRIPTION="Evaluate expr-1 if expr-2 is true" "unless" /DESCRIPTION="Evaluate expr-1 if expr-2 is false" "||" /DESCRIPTION="Evaluate expr-2 if expr-1 is false" "&&" /DESCRIPTION="Evaluate expr-2 if expr-1 is true" END DEFINE DELETE TOKEN "construct" DEFINE TOKEN "construct" - /PLACEHOLDER="construct" DELETE TOKEN "cst-list" DEFINE TOKEN "cst-list" "{@construct@}..." END DEFINE DELETE PLACEHOLDER "LSE$GENERIC" DEFINE PLACEHOLDER "LSE$GENERIC" - /TYPE=NONTERMINAL "{@tbs@}" END DEFINE DELETE PLACEHOLDER "LSE$BLOCK_COMMENT" DEFINE PLACEHOLDER "LSE$BLOCK_COMMENT" - /TYPE=NONTERMINAL "" "# {@tbs@}" "#" END DEFINE DELETE PLACEHOLDER "LSE$LINE_COMMENT" DEFINE PLACEHOLDER "LSE$LINE_COMMENT" - /TYPE=NONTERMINAL " # {@tbs@}" END DEFINE DELETE TOKEN "invoke-method" DEFINE TOKEN "invoke-method" - /DESCRIPTION="Method call" "{@objref@}->{@name-of-method@} [@mparam@]..." END DEFINE DELETE PLACEHOLDER "objref" DEFINE PLACEHOLDER "objref" - /TYPE=TERMINAL "Object reference" END DEFINE DELETE PLACEHOLDER "name-of-method" DEFINE PLACEHOLDER "name-of-method" - /TYPE=TERMINAL "Name of a method" END DEFINE DELETE PLACEHOLDER "mparam" DEFINE PLACEHOLDER "mparam" - /DUPLICATION=HORIZONTAL - /SEPARATOR="," - /TYPE=NONTERMINAL "{@expr@}" END DEFINE DELETE PLACEHOLDER "function" DEFINE PLACEHOLDER "function" - /DESCRIPTION="Built-in function" - /TYPE=MENU "arithmetic-function" /PLACEHOLDER "conversion-function" /PLACEHOLDER "structure-function" /PLACEHOLDER "string-function" /PLACEHOLDER "array-and-list-function" /PLACEHOLDER "search-and-replace-function" /PLACEHOLDER "file-operation" /PLACEHOLDER "file-test" /PLACEHOLDER "IO-function" /PLACEHOLDER "directory-function" /PLACEHOLDER "system-function" /PLACEHOLDER "miscellaneous-function" /PLACEHOLDER END DEFINE ![token or placeholder]... DELETE PLACEHOLDER "arithmetic-function" DEFINE PLACEHOLDER "arithmetic-function" - /DESCRIPTION="Arithmetic functions" - /TYPE=MENU "int" /TOKEN "rand" /TOKEN "time" /TOKEN END DEFINE DELETE PLACEHOLDER "conversion-function" DEFINE PLACEHOLDER "conversion-function" - /DESCRIPTION="Conversion operations" - /TYPE=MENU "chr" /TOKEN "gmtime" /TOKEN "hex" /TOKEN "localtime" /TOKEN "oct" /TOKEN "ord" /TOKEN "vec" /TOKEN END DEFINE DELETE PLACEHOLDER "structure-function" DEFINE PLACEHOLDER "structure-function" - /DESCRIPTION="Structure conversion" - /TYPE=MENU "pack" /TOKEN "unpack" /TOKEN END DEFINE DELETE PLACEHOLDER "string-function" DEFINE PLACEHOLDER "string-function" - /DESCRIPTION="String function" - /TYPE=MENU "chomp" /TOKEN "chop" /TOKEN "crypt" /TOKEN "eval" /TOKEN "index" /TOKEN "length" /TOKEN "lc" /TOKEN "lcfirst" /TOKEN "quotemeta" /TOKEN "rindex" /TOKEN "substr" /TOKEN "uc" /TOKEN "ucfirst" /TOKEN END DEFINE DELETE PLACEHOLDER "array-and-list-function" DEFINE PLACEHOLDER "array-and-list-function" - /DESCRIPTION="Array and list functions" - /TYPE=MENU "delete-hash" /TOKEN "each" /TOKEN "exists" /TOKEN "grep-1" /TOKEN "grep-2" /TOKEN "join" /TOKEN "keys" /TOKEN "map-1" /TOKEN "map-2" /TOKEN "pop" /TOKEN "push" /TOKEN "reverse" /TOKEN "scalar-array" /TOKEN "scalar-hash" /TOKEN "shift" /TOKEN "sort" /TOKEN "splice" /TOKEN "split" /TOKEN "unshift" /TOKEN "values" /TOKEN END DEFINE DELETE PLACEHOLDER "search-and-replace-function" DEFINE PLACEHOLDER "search-and-replace-function" - /DESCRIPTION="Search and replace" - /TYPE=MENU "search" /TOKEN "replace" /TOKEN "translate" /TOKEN "pos" /TOKEN "study" /TOKEN END DEFINE DELETE PLACEHOLDER "file-operation" DEFINE PLACEHOLDER "file-operation" - /DESCRIPTION="File operations" - /TYPE=MENU "chmod" /TOKEN "chown" /TOKEN "truncate" /TOKEN "link" /TOKEN "lstat" /TOKEN "mkdir" /TOKEN "readlink" /TOKEN "rename" /TOKEN "rmdir" /TOKEN "stat" /TOKEN "symlink" /TOKEN "unlink" /TOKEN "utime" /TOKEN END DEFINE DELETE PLACEHOLDER "file-test" DEFINE PLACEHOLDER "file-test" - /DESCRIPTION="File test operators" - /TYPE=TERMINAL "-r -w -x File is readable/writeable/executable" "-R -W -X Ditto, using real UID/GID" "-o -O File is owned by effective/real uid" "-e -z File exists/has zero size" "-s File exists and has non-zero size: returns size" "-f -d File is plain file/directory" "-l -S -p File is symbolic link/socket/pipe" "-b -c File is a block/character special file" "-u -g -k File has setuid/setgid/sticky bit set" "-t Tests if filehandle (default is STDIN) is opened to a tty" "-T -B File is text/binary file" "-M -A -C Modification/access/inode-change time, since script start" END DEFINE DELETE PLACEHOLDER "IO-function" DEFINE PLACEHOLDER "IO-function" - /DESCRIPTION="I/O functions" - /TYPE=MENU "binmode" /TOKEN "close" /TOKEN "dbmclose" /TOKEN "dbmopen" /TOKEN "eof" /TOKEN "fcntl" /TOKEN "fileno" /TOKEN "flock" /TOKEN "getc" /TOKEN "ioctl" /TOKEN "open" /TOKEN "pipe" /TOKEN "print" /TOKEN "printf" /TOKEN "read" /TOKEN "seek" /TOKEN "select" /TOKEN "select-2" /TOKEN "sprintf" /TOKEN "sysread" /TOKEN "syswrite" /TOKEN "tell" /TOKEN END DEFINE DELETE PLACEHOLDER "directory-function" DEFINE PLACEHOLDER "directory-function" - /DESCRIPTION="Directory reading routines" - /TYPE=MENU "closedir" /TOKEN "opendir" /TOKEN "readdir" /TOKEN "rewinddir" /TOKEN "seekdir" /TOKEN "telldir" /TOKEN END DEFINE DELETE PLACEHOLDER "system-function" DEFINE PLACEHOLDER "system-function" - /DESCRIPTION="System interactions" - /TYPE=MENU "alarm" /TOKEN "chdir" /TOKEN "chroot" /TOKEN "die" /TOKEN "exec" /TOKEN "exit" /TOKEN "fork" /TOKEN "getlogin" /TOKEN "getpgrp" /TOKEN "getppid" /TOKEN "getpriority" /TOKEN "glob" /TOKEN "kill" /TOKEN "setpgrp" /TOKEN "setpriority" /TOKEN "sleep" /TOKEN "syscall" /TOKEN "system" /TOKEN "times" /TOKEN "umask" /TOKEN "wait" /TOKEN "waitpid" /TOKEN "warn" /TOKEN END DEFINE DELETE PLACEHOLDER "miscellaneous-function" DEFINE PLACEHOLDER "miscellaneous-function" - /DESCRIPTION="Miscellaneous" - /TYPE=MENU "defined" /TOKEN "do" /TOKEN "dump" /TOKEN "eval" /TOKEN "ref" /TOKEN "reset" /TOKEN "scalar" /TOKEN "undef" /TOKEN "wantarray" /TOKEN END DEFINE DELETE TOKEN "int" DEFINE TOKEN "int" - /DESCRIPTION="int" "int [@expr@]" END DEFINE DELETE TOKEN "rand" DEFINE TOKEN "rand" - /DESCRIPTION="rand" "rand [@expr@]" END DEFINE DELETE TOKEN "time" DEFINE TOKEN "time" - /DESCRIPTION="time" "time" END DEFINE DELETE TOKEN "chr" DEFINE TOKEN "chr" - /DESCRIPTION="chr" "chr [@expr@]" END DEFINE DELETE TOKEN "gmtime" DEFINE TOKEN "gmtime" - /DESCRIPTION="gmtime" "gmtime [@expr@]" END DEFINE DELETE TOKEN "hex" DEFINE TOKEN "hex" - /DESCRIPTION="hex" "hex [@expr@]" END DEFINE DELETE TOKEN "localtime" DEFINE TOKEN "localtime" - /DESCRIPTION="localtime" "localtime [@expr@]" END DEFINE DELETE TOKEN "oct" DEFINE TOKEN "oct" - /DESCRIPTION="oct" "oct [@expr@]" END DEFINE DELETE TOKEN "ord" DEFINE TOKEN "ord" - /DESCRIPTION="ord" "ord [@expr@]" END DEFINE DELETE TOKEN "vec" DEFINE TOKEN "vec" - /DESCRIPTION="vec" "vec {@expr@},{@offset@},{@bits@}" END DEFINE DELETE TOKEN "pack" DEFINE TOKEN "pack" - /DESCRIPTION="pack" "pack {@template@},{@list@}" END DEFINE DELETE TOKEN "unpack" DEFINE TOKEN "unpack" - /DESCRIPTION="unpack" "unpack {@template@},{@expr@}" END DEFINE DELETE TOKEN "chomp" DEFINE TOKEN "chomp" - /DESCRIPTION="chomp" "chomp [@expr@]" END DEFINE DELETE TOKEN "chop" DEFINE TOKEN "chop" - /DESCRIPTION="chop" "chop [@expr@]" END DEFINE DELETE TOKEN "crypt" DEFINE TOKEN "crypt" - /DESCRIPTION="crypt" "crypt {@plaintext@},{@salt@}" END DEFINE DELETE TOKEN "eval" DEFINE TOKEN "eval" - /DESCRIPTION="eval" "eval [@expr@]" END DEFINE DELETE TOKEN "index" DEFINE TOKEN "index" - /DESCRIPTION="index" "index {@str@},{@substr@},[@offset@]" END DEFINE DELETE TOKEN "length" DEFINE TOKEN "length" - /DESCRIPTION="length" "length [@expr@]" END DEFINE DELETE TOKEN "lc" DEFINE TOKEN "lc" - /DESCRIPTION="lc" "lc {@expr@}" END DEFINE DELETE TOKEN "lcfirst" DEFINE TOKEN "lcfirst" - /DESCRIPTION="lcfirst" "lcfirst {@expr@}" END DEFINE DELETE TOKEN "quotemeta" DEFINE TOKEN "quotemeta" - /DESCRIPTION="quotemeta" "quotemeta {@expr@}" END DEFINE DELETE TOKEN "rindex" DEFINE TOKEN "rindex" - /DESCRIPTION="rindex" "rindex {@str@},{@substr@},[@offset@]" END DEFINE DELETE TOKEN "substr" DEFINE TOKEN "substr" - /DESCRIPTION="substr" "substr {@expr@},{@offset@},[@len@]" END DEFINE DELETE TOKEN "uc" DEFINE TOKEN "uc" - /DESCRIPTION="uc" "uc {@expr@}" END DEFINE DELETE TOKEN "ucfirst" DEFINE TOKEN "ucfirst" - /DESCRIPTION="ucfirst" "ucfirst {@expr@}" END DEFINE DELETE TOKEN "delete-hash" DEFINE TOKEN "delete-hash" - /DESCRIPTION="Delete a hash element" "delete ${@hash-name@}{{@key@}}" END DEFINE DELETE PLACEHOLDER "key" DEFINE PLACEHOLDER "key" - /TYPE=TERMINAL "Expression representing a key to a hash" END DEFINE DELETE PLACEHOLDER "hash-name" DEFINE PLACEHOLDER "hash-name" - /TYPE=TERMINAL "Name of a hash without the leading %" END DEFINE DELETE TOKEN "each" DEFINE TOKEN "each" - /DESCRIPTION="each" "each {@hash@}" END DEFINE DELETE TOKEN "exists" DEFINE TOKEN "exists" - /DESCRIPTION="exists" "exists ${@hash-name@}{{@key@}}" END DEFINE DELETE TOKEN "grep-1" DEFINE TOKEN "grep-1" - /DESCRIPTION="Evaluate expr for each list element, return true elements" "grep {@expr@},{@list@}" END DEFINE DELETE TOKEN "grep-2" DEFINE TOKEN "grep-2" - /DESCRIPTION="Execute block for each list element, return true elements" "grep {@block@} {@list@}" END DEFINE DELETE TOKEN "join" DEFINE TOKEN "join" - /DESCRIPTION="join" "join [@lse-tbs@]" END DEFINE DELETE TOKEN "keys" DEFINE TOKEN "keys" - /DESCRIPTION="keys" "keys [@lse-tbs@]" END DEFINE DELETE TOKEN "map-1" DEFINE TOKEN "map-1" - /DESCRIPTION="Evaluate expr for each list element" "map {@expr@},{@list@}" END DEFINE DELETE TOKEN "map-2" DEFINE TOKEN "map-2" - /DESCRIPTION="Execute block for each list element" "map {@block@} {@list@}" END DEFINE DELETE TOKEN "pop" DEFINE TOKEN "pop" - /DESCRIPTION="pop" "pop {@array@}" END DEFINE DELETE TOKEN "push" DEFINE TOKEN "push" - /DESCRIPTION="push" "push {@array@},{@list@}" END DEFINE DELETE TOKEN "reverse" DEFINE TOKEN "reverse" - /DESCRIPTION="reverse" "reverse {@list@}" END DEFINE DELETE TOKEN "scalar-array" DEFINE TOKEN "scalar-array" - /DESCRIPTION="Returns number of elements in an array" "scalar {@array@}" END DEFINE DELETE PLACEHOLDER "array" DEFINE PLACEHOLDER "array" - /TYPE=TERMINAL "An array" END DEFINE DELETE TOKEN "scalar-hash" DEFINE TOKEN "scalar-hash" - /DESCRIPTION="Returns true if hash has elements defined" "scalar {@hash@}" END DEFINE DELETE TOKEN "shift" DEFINE TOKEN "shift" - /DESCRIPTION="shift" "shift [@array@]" END DEFINE DELETE TOKEN "sort" DEFINE TOKEN "sort" - /DESCRIPTION="sort" "sort [@sort-rtn@] {@list@}" END DEFINE DELETE PLACEHOLDER "sort-rtn" DEFINE PLACEHOLDER "sort-rtn" - /TYPE=TERMINAL "Subroutine or block for sorting a list" END DEFINE DELETE TOKEN "splice" DEFINE TOKEN "splice" - /DESCRIPTION="splice" "splice {@array@},[@tbs@]..." END DEFINE DELETE TOKEN "split" DEFINE TOKEN "split" - /DESCRIPTION="split" "split [@lse-tbs@]" END DEFINE DELETE TOKEN "unshift" DEFINE TOKEN "unshift" - /DESCRIPTION="unshift" "unshift {@array@},{@list@}" END DEFINE DELETE TOKEN "values" DEFINE TOKEN "values" - /DESCRIPTION="values" "values {@hash@}" END DEFINE DELETE TOKEN "search" DEFINE TOKEN "search" - /DESCRIPTION="search" "[@search-string@] =~ /[@lse-tbs@]/[@lse-tbs@]" END DEFINE DELETE PLACEHOLDER "search-string" DEFINE PLACEHOLDER "search-string" - /TRAILING="=~" - /TYPE=TERMINAL "String to be searched or substituted" " " "The =~ can also be a !~, to return negated result of search" END DEFINE DELETE TOKEN "replace" DEFINE TOKEN "replace" - /DESCRIPTION="Replace a regexp with something else" "[@search-string@] =~ s/[@lse-tbs@]/[@lse-tbs@]/[@lse-tbs@]" END DEFINE DELETE TOKEN "translate" DEFINE TOKEN "translate" - /DESCRIPTION="translate" "[@search-string@] =~ tr/[@lse-tbs@]/[@lse-tbs@]/[@lse-tbs@]" END DEFINE DELETE TOKEN "pos" DEFINE TOKEN "pos" - /DESCRIPTION="Return position of last m//g search" "pos {@sv@}" END DEFINE DELETE PLACEHOLDER "sv" DEFINE PLACEHOLDER "sv" - /TYPE=TERMINAL "A scalar value" END DEFINE DELETE TOKEN "study" DEFINE TOKEN "study" - /DESCRIPTION="study" "study [@study-var@]" END DEFINE DELETE PLACEHOLDER "study-var" DEFINE PLACEHOLDER "study-var" - /TYPE=TERMINAL "Variable to study for a search" "Defaults to $_ if not specified" END DEFINE DELETE TOKEN "chmod" DEFINE TOKEN "chmod" - /DESCRIPTION="chmod" "chmod [@lse-tbs@]" END DEFINE DELETE TOKEN "chown" DEFINE TOKEN "chown" - /DESCRIPTION="chown" "chown [@lse-tbs@]" END DEFINE DELETE TOKEN "truncate" DEFINE TOKEN "truncate" - /DESCRIPTION="truncate" "truncate [@lse-tbs@]" END DEFINE DELETE TOKEN "link" DEFINE TOKEN "link" - /DESCRIPTION="link" "link [@lse-tbs@]" END DEFINE DELETE TOKEN "lstat" DEFINE TOKEN "lstat" - /DESCRIPTION="lstat" "lstat [@lse-tbs@]" END DEFINE DELETE TOKEN "mkdir" DEFINE TOKEN "mkdir" - /DESCRIPTION="mkdir" "mkdir [@lse-tbs@]" END DEFINE DELETE TOKEN "readlink" DEFINE TOKEN "readlink" - /DESCRIPTION="readlink" "readlink [@lse-tbs@]" END DEFINE DELETE TOKEN "rename" DEFINE TOKEN "rename" - /DESCRIPTION="rename" "rename [@lse-tbs@]" END DEFINE DELETE TOKEN "rmdir" DEFINE TOKEN "rmdir" - /DESCRIPTION="rmdir" "rmdir [@lse-tbs@]" END DEFINE DELETE TOKEN "stat" DEFINE TOKEN "stat" - /DESCRIPTION="stat" "stat [@lse-tbs@]" END DEFINE DELETE TOKEN "symlink" DEFINE TOKEN "symlink" - /DESCRIPTION="symlink" "symlink [@lse-tbs@]" END DEFINE DELETE TOKEN "unlink" DEFINE TOKEN "unlink" - /DESCRIPTION="unlink" "unlink [@lse-tbs@]" END DEFINE DELETE TOKEN "utime" DEFINE TOKEN "utime" - /DESCRIPTION="utime" "utime [@lse-tbs@]" END DEFINE DELETE TOKEN "binmode" DEFINE TOKEN "binmode" - /DESCRIPTION="binmode" "binmode [@lse-tbs@]" END DEFINE DELETE TOKEN "close" DEFINE TOKEN "close" - /DESCRIPTION="close" "close [@lse-tbs@]" END DEFINE DELETE TOKEN "dbmclose" DEFINE TOKEN "dbmclose" - /DESCRIPTION="dbmclose" "dbmclose [@lse-tbs@]" END DEFINE DELETE TOKEN "dbmopen" DEFINE TOKEN "dbmopen" - /DESCRIPTION="dbmopen" "dbmopen [@lse-tbs@]" END DEFINE DELETE TOKEN "eof" DEFINE TOKEN "eof" - /DESCRIPTION="eof" "eof [@lse-tbs@]" END DEFINE DELETE TOKEN "fcntl" DEFINE TOKEN "fcntl" - /DESCRIPTION="fcntl" "fcntl [@lse-tbs@]" END DEFINE DELETE TOKEN "fileno" DEFINE TOKEN "fileno" - /DESCRIPTION="fileno" "fileno [@lse-tbs@]" END DEFINE DELETE TOKEN "flock" DEFINE TOKEN "flock" - /DESCRIPTION="flock" "flock [@lse-tbs@]" END DEFINE DELETE TOKEN "getc" DEFINE TOKEN "getc" - /DESCRIPTION="getc" "getc [@lse-tbs@]" END DEFINE DELETE TOKEN "ioctl" DEFINE TOKEN "ioctl" - /DESCRIPTION="ioctl" "ioctl [@lse-tbs@]" END DEFINE DELETE TOKEN "open" DEFINE TOKEN "open" - /DESCRIPTION="open" "open [@lse-tbs@]" END DEFINE DELETE TOKEN "pipe" DEFINE TOKEN "pipe" - /DESCRIPTION="pipe" "pipe [@lse-tbs@]" END DEFINE DELETE TOKEN "print" DEFINE TOKEN "print" - /DESCRIPTION="print" "print [@lse-tbs@]" END DEFINE DELETE TOKEN "printf" DEFINE TOKEN "printf" - /DESCRIPTION="printf" "printf [@lse-tbs@]" END DEFINE DELETE TOKEN "read" DEFINE TOKEN "read" - /DESCRIPTION="read" "read [@lse-tbs@]" END DEFINE DELETE TOKEN "seek" DEFINE TOKEN "seek" - /DESCRIPTION="seek" "seek [@lse-tbs@]" END DEFINE DELETE TOKEN "select" DEFINE TOKEN "select" - /DESCRIPTION="select" "select [@lse-tbs@]" END DEFINE DELETE TOKEN "select-2" DEFINE TOKEN "select-2" - /DESCRIPTION="select-2" "select-2 [@lse-tbs@]" END DEFINE DELETE TOKEN "sprintf" DEFINE TOKEN "sprintf" - /DESCRIPTION="sprintf" "sprintf [@lse-tbs@]" END DEFINE DELETE TOKEN "sysread" DEFINE TOKEN "sysread" - /DESCRIPTION="sysread" "sysread [@lse-tbs@]" END DEFINE DELETE TOKEN "syswrite" DEFINE TOKEN "syswrite" - /DESCRIPTION="syswrite" "syswrite [@lse-tbs@]" END DEFINE DELETE TOKEN "tell" DEFINE TOKEN "tell" - /DESCRIPTION="tell" "tell [@lse-tbs@]" END DEFINE DELETE TOKEN "closedir" DEFINE TOKEN "closedir" - /DESCRIPTION="closedir" "closedir [@lse-tbs@]" END DEFINE DELETE TOKEN "opendir" DEFINE TOKEN "opendir" - /DESCRIPTION="opendir" "opendir [@lse-tbs@]" END DEFINE DELETE TOKEN "readdir" DEFINE TOKEN "readdir" - /DESCRIPTION="readdir" "readdir [@lse-tbs@]" END DEFINE DELETE TOKEN "rewinddir" DEFINE TOKEN "rewinddir" - /DESCRIPTION="rewinddir" "rewinddir [@lse-tbs@]" END DEFINE DELETE TOKEN "seekdir" DEFINE TOKEN "seekdir" - /DESCRIPTION="seekdir" "seekdir [@lse-tbs@]" END DEFINE DELETE TOKEN "telldir" DEFINE TOKEN "telldir" - /DESCRIPTION="telldir" "telldir [@lse-tbs@]" END DEFINE DELETE TOKEN "alarm" DEFINE TOKEN "alarm" - /DESCRIPTION="alarm" "alarm [@lse-tbs@]" END DEFINE DELETE TOKEN "chdir" DEFINE TOKEN "chdir" - /DESCRIPTION="chdir" "chdir [@lse-tbs@]" END DEFINE DELETE TOKEN "chroot" DEFINE TOKEN "chroot" - /DESCRIPTION="chroot" "chroot [@lse-tbs@]" END DEFINE DELETE TOKEN "die" DEFINE TOKEN "die" - /DESCRIPTION="die" "die [@lse-tbs@]" END DEFINE DELETE TOKEN "exec" DEFINE TOKEN "exec" - /DESCRIPTION="exec" "exec [@lse-tbs@]" END DEFINE DELETE TOKEN "exit" DEFINE TOKEN "exit" - /DESCRIPTION="exit" "exit [@lse-tbs@]" END DEFINE DELETE TOKEN "fork" DEFINE TOKEN "fork" - /DESCRIPTION="fork" "fork [@lse-tbs@]" END DEFINE DELETE TOKEN "getlogin" DEFINE TOKEN "getlogin" - /DESCRIPTION="getlogin" "getlogin [@lse-tbs@]" END DEFINE DELETE TOKEN "getpgrp" DEFINE TOKEN "getpgrp" - /DESCRIPTION="getpgrp" "getpgrp [@lse-tbs@]" END DEFINE DELETE TOKEN "getppid" DEFINE TOKEN "getppid" - /DESCRIPTION="getppid" "getppid [@lse-tbs@]" END DEFINE DELETE TOKEN "getpriority" DEFINE TOKEN "getpriority" - /DESCRIPTION="getpriority" "getpriority [@lse-tbs@]" END DEFINE DELETE TOKEN "glob" DEFINE TOKEN "glob" - /DESCRIPTION="glob" "glob [@lse-tbs@]" END DEFINE DELETE TOKEN "kill" DEFINE TOKEN "kill" - /DESCRIPTION="kill" "kill [@lse-tbs@]" END DEFINE DELETE TOKEN "setpgrp" DEFINE TOKEN "setpgrp" - /DESCRIPTION="setpgrp" "setpgrp [@lse-tbs@]" END DEFINE DELETE TOKEN "setpriority" DEFINE TOKEN "setpriority" - /DESCRIPTION="setpriority" "setpriority [@lse-tbs@]" END DEFINE DELETE TOKEN "sleep" DEFINE TOKEN "sleep" - /DESCRIPTION="sleep" "sleep [@lse-tbs@]" END DEFINE DELETE TOKEN "syscall" DEFINE TOKEN "syscall" - /DESCRIPTION="syscall" "syscall [@lse-tbs@]" END DEFINE DELETE TOKEN "system" DEFINE TOKEN "system" - /DESCRIPTION="system" "system [@lse-tbs@]" END DEFINE DELETE TOKEN "times" DEFINE TOKEN "times" - /DESCRIPTION="times" "times [@lse-tbs@]" END DEFINE DELETE TOKEN "umask" DEFINE TOKEN "umask" - /DESCRIPTION="umask" "umask [@lse-tbs@]" END DEFINE DELETE TOKEN "wait" DEFINE TOKEN "wait" - /DESCRIPTION="wait" "wait [@lse-tbs@]" END DEFINE DELETE TOKEN "waitpid" DEFINE TOKEN "waitpid" - /DESCRIPTION="waitpid" "waitpid [@lse-tbs@]" END DEFINE DELETE TOKEN "warn" DEFINE TOKEN "warn" - /DESCRIPTION="warn" "warn [@lse-tbs@]" END DEFINE DELETE TOKEN "defined" DEFINE TOKEN "defined" - /DESCRIPTION="defined" "defined [@lse-tbs@]" END DEFINE DELETE TOKEN "do" DEFINE TOKEN "do" - /DESCRIPTION="do" "do [@lse-tbs@]" END DEFINE DELETE TOKEN "dump" DEFINE TOKEN "dump" - /DESCRIPTION="dump" "dump [@lse-tbs@]" END DEFINE DELETE TOKEN "eval" DEFINE TOKEN "eval" - /DESCRIPTION="eval" "eval [@lse-tbs@]" END DEFINE DELETE TOKEN "ref" DEFINE TOKEN "ref" - /DESCRIPTION="ref" "ref [@lse-tbs@]" END DEFINE DELETE TOKEN "reset" DEFINE TOKEN "reset" - /DESCRIPTION="reset" "reset [@lse-tbs@]" END DEFINE DELETE TOKEN "scalar" DEFINE TOKEN "scalar" - /DESCRIPTION="Evaluate expr in scalar context" "scalar {@expr@}" END DEFINE DELETE TOKEN "undef" DEFINE TOKEN "undef" - /DESCRIPTION="undef" "undef [@lse-tbs@]" END DEFINE DELETE TOKEN "wantarray" DEFINE TOKEN "wantarray" - /DESCRIPTION="wantarray" "wantarray" END DEFINE delete placeholder "plaintext" define placeholder "plaintext" - /desc="plaintext" - /type=terminal "plaintext" END DEFINE delete placeholder "salt" define placeholder "salt" - /desc="salt" - /type=terminal "salt" END DEFINE delete placeholder "hash" define placeholder "hash" - /desc="hash" - /type=terminal "A hash" END DEFINE delete placeholder "str" define placeholder "str" - /desc="str" - /type=terminal "str" END DEFINE delete placeholder "substr" define placeholder "substr" - /desc="substr" - /type=terminal "substr" END DEFINE delete placeholder "offset" define placeholder "offset" - /desc="offset" - /type=terminal "offset" END DEFINE delete placeholder "template" define placeholder "template" - /desc="template" - /type=terminal "template" END DEFINE delete placeholder "str" define placeholder "str" - /desc="str" - /type=terminal "str" END DEFINE delete placeholder "substr" define placeholder "substr" - /desc="substr" - /type=terminal "substr" END DEFINE delete placeholder "offset" define placeholder "offset" - /desc="offset" - /type=terminal "offset" END DEFINE delete placeholder "len" define placeholder "len" - /desc="len" - /type=terminal "len" END DEFINE delete placeholder "bits" define placeholder "bits" - /desc="bits" - /type=terminal "bits" END DEFINE DELETE PLACEHOLDER /LANGUAGE=LSE "@lse-tbs@" DEFINE PLACEHOLDER "@lse-tbs@" - /LANGUAGE=LSE - /TYPE=TERMINAL "Replace this with correct perl text" END DEFINE DELETE PLACEHOLDER "ISA-declaration" DEFINE PLACEHOLDER "ISA-declaration" - /DESCRIPTION="Specify superclasses" - /TYPE=NONTERMINAL "@ISA = qw({@superclass@}...);" END DEFINE DELETE PLACEHOLDER "superclass" DEFINE PLACEHOLDER "superclass" - /DUPLICATION=HORIZONTAL - /SEPARATOR=" " - /TYPE=TERMINAL "Name of a superclass" END DEFINE DELETE TOKEN "class" DEFINE TOKEN "class" - /PLACEHOLDER="perl-class" DELETE PLACEHOLDER "public-symbols" DEFINE PLACEHOLDER "public-symbols" - /TYPE=NONTERMINAL "@EXPORT = qw({@export-symbol@}...);" END DEFINE DELETE PLACEHOLDER "export-symbol" DEFINE PLACEHOLDER "export-symbol" - /DUPLICATION=HORIZONTAL - /SEPARATOR=" " - /TYPE=TERMINAL "Name of routine or variable to be exported or exportable" END DEFINE DELETE TOKEN "method" DEFINE TOKEN "method" - /PLACEHOLDER="method-definition" DELETE PLACEHOLDER "setget-definition" DEFINE PLACEHOLDER "setget-definition" - /DESCRIPTION="Method to access or change an object's data" - /TYPE=NONTERMINAL "# [@setget-comments@]" "sub {@method-name@} {" " my $self = shift;" " my ($value) = @_;" " if (defined $value){" " $self->{{@data-name@}} = $value;" " }" " return $self->{{@data-name@}};" "}" "" END DEFINE DELETE PLACEHOLDER "setget-comments" DEFINE PLACEHOLDER "setget-comments" - /TYPE=NONTERMINAL " " " Class: {@class-name@}" " Method: {@method-name@}" " " " Responsibilities:" " Set or get value of {@tbs@}" " " " Arguments: " $value - (optional) new value for instance variable" " " END DEFINE DELETE TOKEN "setget" DEFINE TOKEN "setget" - /PLACEHOLDER="setget-definition" DELETE PLACEHOLDER "data-name" DEFINE PLACEHOLDER "data-name" - /AUTO_SUBSTITUTE - /TYPE=TERMINAL "Name of a hash entry used as a field ID" END DEFINE DELETE PLACEHOLDER "accessor-definition" DEFINE PLACEHOLDER "accessor-definition" - /DESCRIPTION="Method to access an object's data" - /TYPE=NONTERMINAL "# [@accessor-comments@]" "sub {@method-name@} {" " my $self = shift;" " return {@default-accessor@};" "}" "" END DEFINE DELETE PLACEHOLDER "default-accessor" DEFINE PLACEHOLDER "default-accessor" - /TYPE=NONTERMINAL "$self->{{@tbs@}}" END DEFINE DELETE PLACEHOLDER "accessor-comments" DEFINE PLACEHOLDER "accessor-comments" - /TYPE=NONTERMINAL " " " Class: {@class-name@}" " Method: {@method-name@}" " " " Responsibilities:" " Return {@tbs@}" " " END DEFINE DELETE TOKEN "accessor" DEFINE TOKEN "accessor" - /PLACEHOLDER="accessor-definition" DELETE PLACEHOLDER "ctor-var-init" DEFINE PLACEHOLDER "ctor-var-init" - /DESCRIPTION="Initialize an instance variable" - /TYPE=NONTERMINAL "$self->{{@tbs@}} = {@tbs@};" END DEFINE SET LANGUAGE LSE