::CLASS rexxprogram PUBLIC

the rexxprogram class
Definition at line 82 of rexxprogram.cls

Public Methods

- string list of arguments (commas removed) getarglist (clauses)
get first use of {parse|use} arg in a feature
Queue of source getclausecode (fc)
return clause source corresponding to filechunk
Queue of clauses getclausesat (lineno)
return all the clauses at lineno
Queue of source getcode (fc)
return source corresponding to filechunk
Queue - filechunks of contained features getcontained (feature)
return contained features
- string list of exposed variables getexposelist (clauses)
get list of exposed variables for a
Queue of clauses getfeature (feature)
return all clauses in feature
String or .nil getlinecomment (filechunk)
return any line comment associated with filechunk
Queue of source getnoppedsource (fc)
return source of a filechunk with literals set to 'o'
a comment feature or .nil if no block comment getprevcomment (feature)
get any block comment between this feature
Queue of source getsource (fc)
return source corresponding to filechunk
String of clause getwholeclause (fc)
return a (possibly continued) clause
  init (programname)
parse the rexx program
  nextfeature (current, goodlist)
return next interesting feature
an array of zero or more items safeallat (r, index)
circumvent 4.20 beta bug

Public Attributes

  blockcomments
queue of filechunks of block comments
  classes
queue of filechunks of classes
  clausemap
relation map to clauses by line number
  clauses
queue of filechunks of all clauses
  cleansrc
queue of source minus comments
  codefeaturemap
relation map to code features by line number
  codefeatures
queue of filechunks of code features (no comments)
  commentmap
relation map to comments by line number
  comments
queue of filechunks of comments (line and block)
  features
queue of filechunks of all features (code and block comments)
  hashbang
string Unix magic string or ''
  labels
queue of filechunks of labels
  linecomments
queue of filechunks of line comments
  methods
queue of filechunks of methods
  mixedclauses
queue of filechunks of all clauses, including features
  procedural
boolean when true the program has no oo features
  procedures
queue of filechunks of procedures
  quotemap
relation map to quotes by line number
  quotes
queue of filechunks of quoted strings
  rconstants
queue of filechunks of constants
  requires
queue of filechunks of requires
  roptions
queue of filechunks of options
  routines
queue of filechunks of routines
  src
queue of the whole source
  user
user field: any use by client

Private Methods

  classsetup (fc)
complete class filechunk
  delimitclauses ()
delimit clauses into the clause list
  getcodefeatures ()
distinguish clauses into interesting features
  iscomment (line, col)
quoted = self~quotemap~allat(line)
.true - character is in a quoted string isinquote (line, col)
returns Boolean indicating whether character position is
  mapquotes ()
map quotes so we can detect real ';' clause ends
  mergefeatures ()
merge codefeatures and block comments into features
  methodsetup (fc)
complete method filechunk
  parsesource ()
parse the source into comments, quotes and code
  procsetup (fc)
complete proc filechunk
  quotestate (c, lineno, colno)
subroutine to set quote state
  requiressetup (fc)
complete requires filechunk
  routinesetup (fc)
complete routine filechunk
  sanity (chunks)
ensure chunks make approximate sense
  sortcomments ()
sort comments into line and block, and merge contiguous blocks
  splitclause (c, fc, splitpoints)
produce a queue of cloned clauses
a queue of one or more clauses derived from c unsugar (c)
deal with run-on clauses for IF and WHEN etc.

Exposed variables

inblock exposed by
  parsesource ()
parse the source into comments, quotes and code
  quotestate (c, lineno, colno)
subroutine to set quote state
qblock exposed by
  parsesource ()
parse the source into comments, quotes and code
  quotestate (c, lineno, colno)
subroutine to set quote state
quotechar exposed by
  parsesource ()
parse the source into comments, quotes and code
  quotestate (c, lineno, colno)
subroutine to set quote state
inquote exposed by
  parsesource ()
parse the source into comments, quotes and code
  quotestate (c, lineno, colno)
subroutine to set quote state
inline exposed by
  parsesource ()
parse the source into comments, quotes and code
  quotestate (c, lineno, colno)
subroutine to set quote state

Instantiated by

documents.cls line 132

Feature Detail

::ATTRIBUTE src
queue of the whole source
Definition at line 84 of rexxprogram.cls
Dynamically referenced by
documents.cls line 306 "return self~rxprogram~src"
htmlrexxsource.cls line 88 "col = .colourable~new(file~document~src)"
rexxprogram.cls line 126 "self~src = s~arrayin"
rexxprogram.cls line 208 "i~endline = self~src~items"
rexxprogram.cls line 210 "i~endcol = self~src[self~src~items]~length~max(1)"
rexxprogram.cls line 210 "i~endcol = self~src[self~src~items]~length~max(1)"
rexxprogram.cls line 233 "do line over self~src"
rexxprogram.cls line 1294 "line = self~src[j]"
rexxprogram.cls line 1317 "line = self~src[j]"

::ATTRIBUTE cleansrc
queue of source minus comments
Definition at line 85 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 130 "self~cleansrc = .queue~new"
rexxprogram.cls line 333 "self~cleansrc~queue(cleanline)"
rexxprogram.cls line 392 "lines = self~cleansrc~items"
rexxprogram.cls line 403 "line = self~cleansrc[lineno]"
rexxprogram.cls line 1256 "line = self~cleansrc[j]"

::ATTRIBUTE comments
queue of filechunks of comments (line and block)
Definition at line 88 of rexxprogram.cls
Dynamically referenced by
documents.cls line 322 "do i over self~rxprogram~comments"
htmlrexxsource.cls line 254 "comments = rxdoc~comments"
rexxprogram.cls line 131 "self~comments = .queue~new"
rexxprogram.cls line 161 "self~sanity(self~comments)"
rexxprogram.cls line 310 "self~comments~queue(bcomment)"
rexxprogram.cls line 321 "self~comments~queue(lcomment)"
rexxprogram.cls line 1031 "do j = 1 to self~comments~items"
rexxprogram.cls line 1032 "com = self~comments[j]"
rexxprogram.cls line 1042 "do k = j + 1 to self~comments~items"
rexxprogram.cls line 1043 "next = self~comments[k]"

::ATTRIBUTE blockcomments
queue of filechunks of block comments
Definition at line 89 of rexxprogram.cls
Dynamically referenced by
documents.cls line 266 "if self~rxprogram~blockcomments~items > 0"
documents.cls line 268 "bc = self~rxprogram~getsource(self~rxprogram~blockcomments[1])"
rexxprogram.cls line 134 "self~blockcomments = .queue~new"
rexxprogram.cls line 1054 "self~blockcomments~queue(nc)"
rexxprogram.cls line 1077 "do j = 1 to self~blockcomments~items"
rexxprogram.cls line 1078 "self~features~queue(self~blockcomments[j])"
rexxprogram.cls line 1083 "if self~blockcomments~items = 0"
rexxprogram.cls line 1097 "com = self~blockcomments[bcix]"
rexxprogram.cls line 1109 "do j = bcix to self~blockcomments~items"
rexxprogram.cls line 1110 "self~features~queue(self~blockcomments[j])"
rexxprogram.cls line 1120 "if bcix > self~blockcomments~items"
rexxprogram.cls line 1128 "com = self~blockcomments[bcix]"

::ATTRIBUTE linecomments
queue of filechunks of line comments
Definition at line 90 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 135 "self~linecomments = .queue~new"
rexxprogram.cls line 1038 "self~linecomments~queue(com)"

::ATTRIBUTE quotes
queue of filechunks of quoted strings
Definition at line 91 of rexxprogram.cls
Dynamically referenced by
documents.cls line 357 "do i over self~rxprogram~quotes"
htmlrexxsource.cls line 283 "quotes = rxdoc~quotes"
rexxprogram.cls line 132 "self~quotes = .queue~new"
rexxprogram.cls line 162 "self~sanity(self~quotes)"
rexxprogram.cls line 355 "self~quotes~queue(qblock)"
rexxprogram.cls line 362 "self~quotes~queue(qblock)"
rexxprogram.cls line 373 "do i over self~quotes"

::ATTRIBUTE clauses
queue of filechunks of all clauses
Definition at line 92 of rexxprogram.cls
Dynamically referenced by
htmlrexxsource.cls line 290 "clauses = rxdoc~clauses"
rexxliterate.cls line 320 "do c over i~document~clauses"
rexxprogram.cls line 136 "self~clauses = .queue~new"
rexxprogram.cls line 171 "if self~clauses~items = 0"
rexxprogram.cls line 390 "self~clauses = .queue~new"
rexxprogram.cls line 465 "self~clauses~queue(s)"
rexxprogram.cls line 648 "clause = self~clauses[1]"
rexxprogram.cls line 668 "do clauseix = 1 to self~clauses~items"
rexxprogram.cls line 669 "clause = self~clauses[clauseix]"
rexxprogram.cls line 782 "endclause = self~clauses[curfeat~startclause]"
rexxprogram.cls line 790 "endclause = self~clauses[self~clauses~last]"
rexxprogram.cls line 790 "endclause = self~clauses[self~clauses~last]"
rexxprogram.cls line 791 "else endclause = self~clauses[nf~startclause-1]"
rexxprogram.cls line 797 "endclause = self~clauses[self~clauses~last]"
rexxprogram.cls line 797 "endclause = self~clauses[self~clauses~last]"
rexxprogram.cls line 798 "else endclause = self~clauses[nf~startclause-1]"
rexxprogram.cls line 806 "curfeat~endclause = self~clauses~index(endclause)"
rexxprogram.cls line 1179 "clauses~queue(self~clauses[j])"

::ATTRIBUTE labels
queue of filechunks of labels
Definition at line 93 of rexxprogram.cls
Dynamically referenced by
documents.cls line 159 "globalix~labels~queue(rf)"
rexxprogram.cls line 142 "self~labels = .queue~new"
rexxprogram.cls line 688 "self~labels~queue(l)"

::ATTRIBUTE procedures
queue of filechunks of procedures
Definition at line 94 of rexxprogram.cls
Dynamically referenced by
documents.cls line 183 "globalix~procedures~queue(rf)"
htmlindex.cls line 70 "self~emitprocedurei(global~procedures, htmlout, 'Index of procedures', 'petprocedures', 'procedures')"
rexxprogram.cls line 143 "self~procedures = .queue~new"
rexxprogram.cls line 662 "self~procedures~queue(p)"
rexxprogram.cls line 682 "self~procedures~queue(p)"
rexxprogram.cls line 812 "do i over self~procedures"

::ATTRIBUTE requires
queue of filechunks of requires
Definition at line 95 of rexxprogram.cls
Dynamically referenced by
documents.cls line 224 "globalix~requires~queue(rf)"
documents.cls line 409 "return self~rxprogram~requires"
documents.cls line 429 "do c over self~rxprogram~requires"
htmlrexxclass.cls line 87 "if rdc~document~requires~items > 0"
htmlrexxclass.cls line 90 "do i over rdc~document~requires"
rexxprogram.cls line 144 "self~requires = .queue~new"
rexxprogram.cls line 697 "self~requires~queue(r)"
rexxprogram.cls line 815 "do i over self~requires"

::ATTRIBUTE classes
queue of filechunks of classes
Definition at line 96 of rexxprogram.cls
Dynamically referenced by
documents.cls line 174 "globalix~classes~queue(rf)"
htmlindex.cls line 67 "self~emitclassi(global~classes, htmlout, 'Index of classes', 'petclasses', 'classes')"
rexxprogram.cls line 145 "self~classes = .queue~new"
rexxprogram.cls line 187 "do i over self~classes"
rexxprogram.cls line 708 "self~classes~queue(c)"
rexxprogram.cls line 818 "do i over self~classes"

::ATTRIBUTE methods
queue of filechunks of methods
Definition at line 97 of rexxprogram.cls
Dynamically referenced by
documents.cls line 165 "prevmethod~feature~ownerclass~user~methods~queue(rf)"
documents.cls line 192 "globalix~methods~queue(rf)"
documents.cls line 196 "c~ownerclass~user~methods~queue(rf)"
documents.cls line 209 "c~ownerclass~user~methods~queue(rf)"
documents.cls line 241 "c~ownerclass~user~methods~queue(rf)"
documents.cls line 766 "do rdm over rdc~methods"
htmlindex.cls line 68 "self~emitmethi(global~methods, htmlout, 'Index of methods', 'petmethods', 'methods')"
htmlrexxclass.cls line 155 "do m over rdc~methods"
htmltree.cls line 373 "do m over rdc~methods"
htmltree.cls line 378 "if m = rdc~methods[rdc~methods~last]"
htmltree.cls line 378 "if m = rdc~methods[rdc~methods~last]"
rexxprogram.cls line 146 "self~methods = .queue~new"
rexxprogram.cls line 721 "self~methods~queue(m)"
rexxprogram.cls line 732 "self~methods~queue(m)"
rexxprogram.cls line 821 "do i over self~methods"

::ATTRIBUTE routines
queue of filechunks of routines
Definition at line 98 of rexxprogram.cls
Dynamically referenced by
documents.cls line 217 "globalix~routines~queue(rf)"
htmlindex.cls line 71 "self~emitroutinei(global~routines, htmlout, 'Index of routines', 'petroutines', 'routines')"
rexxprogram.cls line 147 "self~routines = .queue~new"
rexxprogram.cls line 754 "self~routines~queue(t)"
rexxprogram.cls line 824 "do i over self~routines"

::ATTRIBUTE roptions
queue of filechunks of options
Definition at line 99 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 148 "self~roptions = .queue~new"
rexxprogram.cls line 763 "self~roptions~queue(t)"

::ATTRIBUTE rconstants
queue of filechunks of constants
Definition at line 100 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 149 "self~rconstants = .queue~new"
rexxprogram.cls line 743 "self~rconstants~queue(m)"

::ATTRIBUTE features
queue of filechunks of all features (code and block comments)
Definition at line 101 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 138 "self~features = .queue~new"
rexxprogram.cls line 1078 "self~features~queue(self~blockcomments[j])"
rexxprogram.cls line 1087 "self~features~queue(self~codefeatures[j])"
rexxprogram.cls line 1104 "self~features~queue(code)"
rexxprogram.cls line 1110 "self~features~queue(self~blockcomments[j])"
rexxprogram.cls line 1118 "self~features~queue(com)"
rexxprogram.cls line 1124 "self~features~queue(self~codefeatures[j])"
rexxprogram.cls line 1198 "j = self~features~index(feature)"
rexxprogram.cls line 1203 "if self~features[j]~objectname <> 'COMT'"
rexxprogram.cls line 1206 "prevblock = self~features[j]"
rexxprogram.cls line 1213 "if self~features[j]~objectname <> 'COMT'"
rexxprogram.cls line 1215 "prevnonblock = self~features[j]"
rexxprogram.cls line 1377 "j = self~features~index(feature)"
rexxprogram.cls line 1383 "do j = j+1 to self~features~items"
rexxprogram.cls line 1384 "cfeat = self~features[j]"

::ATTRIBUTE codefeatures
queue of filechunks of code features (no comments)
Definition at line 102 of rexxprogram.cls
Dynamically referenced by
documents.cls line 152 "do c over self~rxprogram~codefeatures"
rexxprogram.cls line 139 "self~codefeatures = .queue~new"
rexxprogram.cls line 663 "self~codefeatures~queue(p)"
rexxprogram.cls line 683 "self~codefeatures~queue(p)"
rexxprogram.cls line 689 "self~codefeatures~queue(l)"
rexxprogram.cls line 698 "self~codefeatures~queue(r)"
rexxprogram.cls line 709 "self~codefeatures~queue(c)"
rexxprogram.cls line 722 "self~codefeatures~queue(m)"
rexxprogram.cls line 733 "self~codefeatures~queue(m)"
rexxprogram.cls line 744 "self~codefeatures~queue(m)"
rexxprogram.cls line 755 "self~codefeatures~queue(t)"
rexxprogram.cls line 764 "self~codefeatures~queue(t)"
rexxprogram.cls line 774 "do j = 1 to self~codefeatures~items"
rexxprogram.cls line 775 "curfeat = self~codefeatures[j]"
rexxprogram.cls line 829 "do i over self~codefeatures"
rexxprogram.cls line 841 "j = self~codefeatures~index(current) + 1"
rexxprogram.cls line 843 "do j = j to self~codefeatures~items"
rexxprogram.cls line 844 "t = self~codefeatures[j]"
rexxprogram.cls line 1074 "if self~codefeatures~items = 0"
rexxprogram.cls line 1086 "do j = 1 to self~codefeatures~items"
rexxprogram.cls line 1087 "self~features~queue(self~codefeatures[j])"
rexxprogram.cls line 1096 "code = self~codefeatures[cfix]"
rexxprogram.cls line 1106 "if cfix > self~codefeatures~items"
rexxprogram.cls line 1114 "code = self~codefeatures[cfix]"
rexxprogram.cls line 1123 "do j = cfix to self~codefeatures~items"
rexxprogram.cls line 1124 "self~features~queue(self~codefeatures[j])"

::ATTRIBUTE mixedclauses
queue of filechunks of all clauses, including features
Definition at line 103 of rexxprogram.cls
Dynamically referenced by
documents.cls line 386 "do i over self~rxprogram~mixedclauses"
documents.cls line 463 "do c over self~rxprogram~mixedclauses"
rexxprogram.cls line 140 "self~mixedclauses = .queue~new"
rexxprogram.cls line 664 "self~mixedclauses~queue(p)"
rexxprogram.cls line 684 "self~mixedclauses~queue(p)"
rexxprogram.cls line 690 "self~mixedclauses~queue(l)"
rexxprogram.cls line 699 "self~mixedclauses~queue(r)"
rexxprogram.cls line 710 "self~mixedclauses~queue(c)"
rexxprogram.cls line 723 "self~mixedclauses~queue(m)"
rexxprogram.cls line 734 "self~mixedclauses~queue(m)"
rexxprogram.cls line 745 "self~mixedclauses~queue(m)"
rexxprogram.cls line 756 "self~mixedclauses~queue(t)"
rexxprogram.cls line 765 "self~mixedclauses~queue(t)"
rexxprogram.cls line 768 "self~mixedclauses~queue(clause)"

::ATTRIBUTE procedural
boolean when true the program has no oo features
Definition at line 105 of rexxprogram.cls
Dynamically referenced by
documents.cls line 256 "return \self~rxprogram~procedural"
rexxprogram.cls line 154 "self~procedural = .true"
rexxprogram.cls line 425 "self~procedural = .false"
rexxprogram.cls line 700 "self~procedural = .false"
rexxprogram.cls line 711 "self~procedural = .false"
rexxprogram.cls line 724 "self~procedural = .false"
rexxprogram.cls line 735 "self~procedural = .false"
rexxprogram.cls line 746 "self~procedural = .false"
rexxprogram.cls line 757 "self~procedural = .false"
rexxprogram.cls line 766 "self~procedural = .false"
rexxprogram.cls line 1008 "self~procedural = .false"
rexxprogram.cls line 1013 "self~procedural = .false"

::ATTRIBUTE hashbang
string Unix magic string or ''
Definition at line 106 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 155 "self~hashbang = ''"
rexxprogram.cls line 409 "self~hashbang = line"

::ATTRIBUTE quotemap
relation map to quotes by line number
Definition at line 108 of rexxprogram.cls
Dynamically referenced by
documents.cls line 346 "fcq = self~rxprogram~safeallat(self~rxprogram~quotemap, lineno)"
rexxprogram.cls line 372 "self~quotemap = .relation~new"
rexxprogram.cls line 378 "self~quotemap~put(i, j)"
rexxprogram.cls line 380 "else self~quotemap~put(i, sl)"
rexxprogram.cls line 1320 "quoted = self~safeallat(self~quotemap, j)"
rexxprogram.cls line 1348 "if \self~quotemap~hasindex(line)"
rexxprogram.cls line 1352 "quoted = self~safeallat(self~quotemap, line)"

::ATTRIBUTE clausemap
relation map to clauses by line number
Definition at line 109 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 389 "self~clausemap = .relation~new"
rexxprogram.cls line 466 "self~clausemap~put(s, s~startline)"
rexxprogram.cls line 1036 "aclause = self~safeallat(self~clausemap, com~startline)"
rexxprogram.cls line 1048 "zclause = self~safeallat(self~clausemap, next~startline)"
rexxprogram.cls line 1145 "clauses = self~safeallat(self~clausemap, lineno)"

::ATTRIBUTE commentmap
relation map to comments by line number
Definition at line 110 of rexxprogram.cls
Dynamically referenced by
documents.cls line 333 "fcq = self~rxprogram~safeallat(self~rxprogram~commentmap, lineno)"
rexxprogram.cls line 231 "self~commentmap = .relation~new"
rexxprogram.cls line 311 "self~commentmap[bcomment~startline] = bcomment"
rexxprogram.cls line 322 "self~commentmap[lcomment~startline] = lcomment"
rexxprogram.cls line 1189 "return self~commentmap[filechunk~startline]"

::ATTRIBUTE codefeaturemap
relation map to code features by line number
Definition at line 111 of rexxprogram.cls
Dynamically referenced by
documents.cls line 367 "return self~rxproram~safeallat(self~rxprogram~codefeaturemap~allat(lineno))"
rexxprogram.cls line 151 "self~codefeaturemap = .relation~new"
rexxprogram.cls line 830 "self~codefeaturemap~put(i, i~startline)"

::ATTRIBUTE user
user field: any use by client
Definition at line 113 of rexxprogram.cls
Dynamically referenced by
documents.cls line 133 "self~rxprogram~user = self"
documents.cls line 165 "prevmethod~feature~ownerclass~user~methods~queue(rf)"
documents.cls line 196 "c~ownerclass~user~methods~queue(rf)"
documents.cls line 209 "c~ownerclass~user~methods~queue(rf)"
documents.cls line 241 "c~ownerclass~user~methods~queue(rf)"
documents.cls line 450 "f~document~reqrefs~queue(.reference~new(c~user, f~document, .nil, 'REQ'))"
documents.cls line 477 "currowner = c~user"
documents.cls line 905 "feature~user = self"
documents.cls line 1235 "return self~feature~ownerclass~user"
documents.cls line 1363 "return self~feature~ownerclass~user"
htmlindex.cls line 381 "owner = i~feature~ownerclass~user"
htmlrexxsource.cls line 140 "anchordoc = rdc~feature~ownerclass~user~hdocurl"
htmlrexxsource.cls line 146 "anchordoc = rdc~feature~ownerclass~user~hdocurl"

::METHOD init
parse the rexx program
Parameters
programname - path to the program source
Definition at line 117 of rexxprogram.cls

::METHOD sanity PRIVATE
ensure chunks make approximate sense
Parameters
chunks - array of chunks to review and fix up A list of chunks is scanned and any zero values are set to defaults
Definition at line 200 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 161 "self~sanity(self~comments)"
rexxprogram.cls line 162 "self~sanity(self~quotes)"

::METHOD parsesource PRIVATE
parse the source into comments, quotes and code
precondition: none
Exposes
inblock inquote inline quotechar qblock
Definition at line 215 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 158 "self~parsesource"

::METHOD quotestate PRIVATE
subroutine to set quote state
Exposes
inblock inquote inline quotechar qblock
Parameters
c not documented
lineno not documented
colno not documented
Definition at line 338 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 249 "self~quotestate(c, lineno, colno)"
rexxprogram.cls line 262 "self~quotestate(c, lineno, colno)"

::METHOD mapquotes PRIVATE
map quotes so we can detect real ';' clause ends
precondition: parsesource has run
Definition at line 371 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 165 "self~mapquotes"

::METHOD delimitclauses PRIVATE
delimit clauses into the clause list
precondition: mapquotes has run
now we can tell for any character position
whether it's in a quote or not
Definition at line 387 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 168 "self~delimitclauses"

::METHOD unsugar PRIVATE
deal with run-on clauses for IF and WHEN etc.
Rexx has some syntactic sugar to let people write things like

if a=1 then do
call a1
end

where there are implied semicolons before and after the
'then' keyword

Parameters
c - a possibly sugared clause
Returns
a queue of one or more clauses derived from c
Definition at line 482 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 463 "sour = self~unsugar(c)"

::METHOD splitclause PRIVATE
produce a queue of cloned clauses
Parameters
c not documented
fc not documented
splitpoints not documented
Definition at line 623 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 553 "ret = self~splitclause(c, fc, dpos)"
rexxprogram.cls line 558 "ret = self~splitclause(c, fc, dpos)"
rexxprogram.cls line 563 "ret = self~splitclause(c, fc, tpos dpos)"
rexxprogram.cls line 568 "ret = self~splitclause(c, fc, opos dpos)"
rexxprogram.cls line 573 "ret = self~splitclause(c, fc, dpos)"
rexxprogram.cls line 582 "ret = self~splitclause(c, fc, tpos)"
rexxprogram.cls line 587 "ret = self~splitclause(c, fc, tpos+'THEN'~length+1)"
rexxprogram.cls line 591 "ret = self~splitclause(c, fc, tpos tpos+'THEN'~length+1)"
rexxprogram.cls line 602 "ret = self~splitclause(c, fc, opos)"
rexxprogram.cls line 607 "ret = self~splitclause(c, fc, opos+'OTHERWISE'~length+1)"
rexxprogram.cls line 611 "ret = self~splitclause(c, fc, opos tpos+'OTHERWISE'~length+1)"

::METHOD getcodefeatures PRIVATE
distinguish clauses into interesting features
precondition: delimitclauses has run
Definition at line 646 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 176 "self~getcodefeatures"

::METHOD nextfeature
return next interesting feature
Parameters
current - the current feature
goodlist - object names of features we're looking for
Definition at line 838 of rexxprogram.cls
Dynamically referenced by
documents.cls line 418 "return self~rxprogram~nextfeature(f, goodlist)"
htmltree.cls line 348 "nf = rexxd~nextfeature(rdc~feature, 'CLAS ROUT')"
rexxprogram.cls line 788 "nf = self~nextfeature(curfeat, 'CLAS ROUT')"
rexxprogram.cls line 795 "nf = self~nextfeature(curfeat, 'CLAS ROUT METH ATTR PROC REQU')"

::METHOD procsetup PRIVATE
complete proc filechunk

Parameters
fc - filechunk of the proc
Definition at line 853 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 813 "self~procsetup(i)"

::METHOD requiressetup PRIVATE
complete requires filechunk

Parameters
fc - filechunk of the requires
Definition at line 869 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 816 "self~requiressetup(i)"

::METHOD classsetup PRIVATE
complete class filechunk
Parameters
fc - filechunk of the requires
Definition at line 876 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 819 "self~classsetup(i)"

::METHOD methodsetup PRIVATE
complete method filechunk
Parameters
fc - filechunk of the method
Definition at line 907 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 822 "self~methodsetup(i)"

::METHOD routinesetup PRIVATE
complete routine filechunk
Parameters
fc - filechunk of the routine
Definition at line 941 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 825 "self~routinesetup(i)"

::METHOD getexposelist
get list of exposed variables for a
procedure, method or routine
Parameters
clauses - queue of clauses in the feature
Returns
- string list of exposed variables
Definition at line 963 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 861 "fc~exposelist = self~getexposelist(proc)"
rexxprogram.cls line 916 "fc~exposelist = self~getexposelist(meth)"
rexxprogram.cls line 948 "fc~exposelist = self~getexposelist(rout)"

::METHOD getarglist
get first use of {parse|use} arg in a feature
in the feature
Parameters
clauses - queue of clauses in the feature
Returns
- string list of arguments (commas removed)
Definition at line 991 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 863 "fc~arglist = self~getarglist(proc)"
rexxprogram.cls line 917 "fc~arglist = self~getarglist(meth)"
rexxprogram.cls line 949 "fc~arglist = self~getarglist(rout)"

::METHOD sortcomments PRIVATE
sort comments into line and block, and merge contiguous blocks

a block comment is any comment line or contiguous comment lines with
no executable clause on them
a line comment is any comment line or contiguous comment lines with
one or more executable clauses on them
Definition at line 1030 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 180 "self~sortcomments"

::METHOD safeallat
circumvent 4.20 beta bug
Parameters
r - a relation
index - an index
Returns
an array of zero or more items
Definition at line 1064 of rexxprogram.cls
Dynamically referenced by
documents.cls line 333 "fcq = self~rxprogram~safeallat(self~rxprogram~commentmap, lineno)"
documents.cls line 346 "fcq = self~rxprogram~safeallat(self~rxprogram~quotemap, lineno)"
documents.cls line 367 "return self~rxproram~safeallat(self~rxprogram~codefeaturemap~allat(lineno))"
rexxprogram.cls line 1036 "aclause = self~safeallat(self~clausemap, com~startline)"
rexxprogram.cls line 1048 "zclause = self~safeallat(self~clausemap, next~startline)"
rexxprogram.cls line 1145 "clauses = self~safeallat(self~clausemap, lineno)"
rexxprogram.cls line 1320 "quoted = self~safeallat(self~quotemap, j)"
rexxprogram.cls line 1352 "quoted = self~safeallat(self~quotemap, line)"
rexxprogram.cls line 1363 "commented = self~safeallat(self~commentemap, line)"

::METHOD mergefeatures PRIVATE
merge codefeatures and block comments into features
retaining startline order
Definition at line 1072 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 184 "self~mergefeatures"

::METHOD getclausesat
return all the clauses at lineno
Parameters
lineno - the line number for which to get clauses
Returns
Queue of clauses
Definition at line 1142 of rexxprogram.cls
Dynamically referenced by
documents.cls line 373 "return self~rxprogram~getclausesat(lineno)"
documents.cls line 397 "clauses = self~rxprogram~getclausesat(feature~startline)"

::METHOD getfeature
return all clauses in feature
Parameters
feature - the feature for which to get clauses
Returns
Queue of clauses
Definition at line 1172 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 880 "clauses = self~getfeature(fc)"
rexxprogram.cls line 1278 "clauses = self~getfeature(fc)"

::METHOD getlinecomment
return any line comment associated with filechunk
Parameters
filechunk - the filechunk for which to get line comment
Returns
String or .nil
Definition at line 1186 of rexxprogram.cls
Dynamically referenced by
documents.cls line 297 "lc = self~rxprogram~getlinecomment(feature)"

::METHOD getprevcomment
get any block comment between this feature
and the preceding feature
Parameters
feature - for which to find preceding block comment
Returns
a comment feature or .nil if no block comment
Definition at line 1195 of rexxprogram.cls
Dynamically referenced by
documents.cls line 280 "prev = self~rxprogram~getprevcomment(feature)"

::METHOD getwholeclause
return a (possibly continued) clause
as a single clause
Parameters
fc - filechunk of clause for which to get source
Returns
String of clause
Definition at line 1232 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 649 "uclause = self~getwholeclause(clause)~translate"
rexxprogram.cls line 671 "mclause = self~getwholeclause(clause)"

::METHOD getcode
return source corresponding to filechunk
with no comments, but not parsed into clauses
Parameters
fc - filechunk for which to get code
Returns
Queue of source
Definition at line 1251 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 883 "definer = self~getcode(clauses[1])[1]"
rexxprogram.cls line 1234 "stack = self~getcode(fc)"
rexxprogram.cls line 1280 "clausecode~queue(self~getcode(clause)[1])"

::METHOD getclausecode
return clause source corresponding to filechunk
each clause in a separate item
Parameters
fc - filechunk for which to get code
Returns
Queue of source
Definition at line 1274 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 857 "proc = self~getclausecode(fc)"
rexxprogram.cls line 911 "meth = self~getclausecode(fc)"
rexxprogram.cls line 945 "rout = self~getclausecode(fc)"

::METHOD getsource
return source corresponding to filechunk
including comments
Parameters
fc - filechunk for which to get code
Returns
Queue of source
Definition at line 1289 of rexxprogram.cls
Dynamically referenced by
documents.cls line 268 "bc = self~rxprogram~getsource(self~rxprogram~blockcomments[1])"
documents.cls line 283 "else src = self~rxprogram~getsource(prev)"
documents.cls line 300 "src = self~rxprogram~getsource(lc)"
documents.cls line 311 "return self~rxprogram~getsource(clause)"
htmlrexxclass.cls line 78 "src = rdc~document~getsource(clause)[1]"
htmlrexxclass.cls line 161 "src = m~document~getsource(clause)[1]"
htmlrexxprogram.cls line 203 "clauseq = i~document~getsource(clause)"
htmlrexxsource.cls line 123 "src = rxdoc~getsource(clause)"
htmlrexxsource.cls line 260 "src = rxdoc~getsource(i)"
htmlutil.cls line 169 "src = r~rdatom~document~getsource(r~rdatom~feature)"
htmlutil.cls line 193 "src = r~rdatom~document~getsource(r~rdatom~feature)"
htmlutil.cls line 206 "src = r~rdatom~document~getsource(r~rdatom~feature)"

::METHOD getnoppedsource
return source of a filechunk with literals set to 'o'
including comments
Parameters
fc - filechunk for which to get literal nopped code
Returns
Queue of source
Definition at line 1312 of rexxprogram.cls
Dynamically referenced by
documents.cls line 316 "return self~rxprogram~getnoppedsource(clause)"
documents.cls line 585 "src = self~document~getnoppedsource(self~feature)"
rexxprogram.cls line 486 "src = self~getnoppedsource(c)"

::METHOD isinquote PRIVATE
returns Boolean indicating whether character position is
in a quoted string
Parameters
line - line number of character
col - column number of character
Returns
.true - character is in a quoted string
.false - character is not in a quoted string
Definition at line 1346 of rexxprogram.cls

::METHOD iscomment PRIVATE
quoted = self~quotemap~allat(line)
Parameters
line not documented
col not documented
Definition at line 1360 of rexxprogram.cls

::METHOD getcontained
return contained features
Parameters
feature - filechunk of feature
Returns
Queue - filechunks of contained features
Definition at line 1374 of rexxprogram.cls
Dynamically referenced by
rexxprogram.cls line 188 "meths = self~getcontained(i)"


Get RexxLiterate at SourceForge.net. Fast, secure and Free Open Source software downloads
Generated on 31 Aug 2010 05:20:33 for RexxLiterate by rexxliterate  0.0.1