-- JunoBind.mesa -- June 6, 1983 1:23 pm Greg Nelson DIRECTORY Lisp, JunoSyntax; JunoBind: DEFINITIONS = BEGIN OPEN JS: JunoSyntax; Alist: TYPE = Lisp.Value; -- An Alist is a list each element of which is either a variable-value pair, or NIL. -- The NILs mark contexts that were Pushed; they are ignored by Lookup and used -- by Pop. Lookup: PUBLIC PROC [v: JS.Variable, al: Alist] RETURNS [Lisp.Value]; Bind: PUBLIC PROC[al: Alist, v: JS.Variable, u: Lisp.Value] RETURNS [newal: Alist]; BindLoop: PUBLIC PROC[al: Alist, al2: Alist] RETURNS [newal: Alist]; Push: PUBLIC PROC [al: Alist] RETURNS [Alist]; Pop: PUBLIC PROC [al: Alist] RETURNS [Alist]; EmptyBinding: PUBLIC PROC RETURNS [Alist]; NewBind: PUBLIC PROC [al: Alist, v: JS.Variable, u: Lisp.Value] RETURNS [newal: Alist]; Extend: PUBLIC PROC [al2, al: Alist] RETURNS [newal: Alist]; InDomain: PUBLIC PROC[arg: JS.Variable, al: Alist] RETURNS [BOOL]; END.