kawa.lang

Class PatternScope

Implemented Interfaces:
Named, Printable

public class PatternScope
extends LetExp

Bindings from a syntax-case/syntax-rules pattern.

Field Summary

Declaration
matchArray
StringBuffer
patternNesting
Nesting of currently visible macro pattern names.
Vector
pattern_names
Currently visible macro pattern names.

Fields inherited from class gnu.expr.LetExp

body, inits

Fields inherited from class gnu.expr.ScopeExp

id, outer

Fields inherited from class gnu.expr.Expression

NEXT_AVAIL_FLAG, flags, noExpressions

Constructor Summary

PatternScope()

Method Summary

static void
pop(Translator tr)
static PatternScope
push(Translator tr)

Methods inherited from class gnu.expr.LetExp

compile, getBody, getType, print, print, setBody, walk, walkChildren

Methods inherited from class gnu.expr.ScopeExp

add, add, addDeclaration, addDeclaration, addDeclaration, countDecls, currentLambda, currentModule, firstDecl, getDefine, getNoDefine, getVarScope, lookup, lookup, nesting, popScope, remove, remove, replaceFollowing, toString, walk

Methods inherited from class gnu.expr.Expression

apply, apply0, compile, compile, compileNotePosition, compileWithPosition, compileWithPosition, eval, eval, getColumn, getFile, getFlag, getFlags, getLine, getType, makeWhile, match0, print, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, walk, walkChildren

Methods inherited from class gnu.mapping.Procedure0

apply0, apply1, apply2, apply3, apply4, applyN, numArgs

Methods inherited from class gnu.mapping.Procedure

apply, apply, apply0, apply1, apply2, apply3, apply4, applyN, check0, check1, check2, check3, check4, checkArgCount, checkN, getName, getProperty, getSetter, getSymbol, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, name, numArgs, removeProperty, set0, set1, setN, setName, setProperty, setProperty, setSetter, setSymbol, toString

Field Details

matchArray

public Declaration matchArray

patternNesting

public StringBuffer patternNesting
Nesting of currently visible macro pattern names. For the i'th pattern variable, (int) patternNesting.charAt(i)/2 is the nesting (in terms of number of ellipsis that indicate the variable is repeated). The low-order bit indicates that if matched value is the car of the value saved in the vars array.

pattern_names

public Vector pattern_names
Currently visible macro pattern names. For the i'th pattern variable, pattern_names.elementAt(i) is the name of the variable,

Constructor Details

PatternScope

public PatternScope()

Method Details

pop

public static void pop(Translator tr)

push

public static PatternScope push(Translator tr)