diff options
author | dos-reis <gdr@axiomatics.org> | 2009-07-13 22:36:51 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2009-07-13 22:36:51 +0000 |
commit | c6efaa6ac903c17bd85eb51e672f80e9baa0ebc4 (patch) | |
tree | f0543ea203bea22c063a517ca7136ed10a486be1 /src/interp/c-util.boot | |
parent | 361eca1c035acd57ad9f0ac1133fb641eabe122b (diff) | |
download | open-axiom-c6efaa6ac903c17bd85eb51e672f80e9baa0ebc4.tar.gz |
* interp/metalex.lisp: "break" is now a keyword.
* interp/fnewmeta.lisp (PARSE-Jump): New.
* interp/compiler.boot (compAtom): Dipatch compilation of "break"
and "iterate" to...
(compBreak): ... here
(compIterate): and here.
(jumpFromLoop): New.
(compRepeatOrCollect): Initialize $lookKind, $iterateCount, and
$breakCount. Set exit point for loop bodies with 'iterate'
expressions.
* interp/parse.boot (parseAtom): Remove.
(parseTran): Adjust.
* algebra/outform.spad.pamphlet: Tidy.
* interp/c-util.boot ($loopKind): Declare.
($repeatBodyLabel): Likewise.
($iterateCount): Likewise.
($breakCount): Likewise.
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r-- | src/interp/c-util.boot | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index 3d050c51..34c1ce25 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -49,6 +49,19 @@ module c_-util where $scanIfTrue := false +++ If within a loop, which kind? (list comprehension or plain old loop) +$loopKind := nil + +++ If within a loop, the program point for the start of the body. +$repeatBodyLabel := nil + +++ The number of occurrance of `iterate' in a (plain old) loop. +$iterateCount := nil + +++ The number of occurrance of `break' in a (plain old) loop. +$breakCount := 0 + + +++ If non nil, holds compiled value of 'Rep' of the current domain. $Representation := nil |