summaryrefslogtreecommitdiff
path: root/MLKLexicalContext.h
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-06-27 12:44:25 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-06-27 12:44:25 +0200
commitcb23a76bbd3b7b1ccf4a5ec8894437e449a9047d (patch)
treec3a2a88747a51bf02a4ca028b9a12462eb549ec7 /MLKLexicalContext.h
parent01703b9a42e4dac6ae83127ba8fc224e6f581c92 (diff)
MLKInterpreter: Implement the %LAMBDA operator.
Diffstat (limited to 'MLKLexicalContext.h')
-rw-r--r--MLKLexicalContext.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/MLKLexicalContext.h b/MLKLexicalContext.h
index 2bf2bc4..552e77d 100644
--- a/MLKLexicalContext.h
+++ b/MLKLexicalContext.h
@@ -16,12 +16,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#import "MLKFuncallable.h"
#import "MLKLispValue.h"
#import <Foundation/NSSet.h>
@class MLKEnvironment, MLKLexicalEnvironment, MLKSymbol, NSLinkedList, NSSet,
- NSMutableDictionary, NSString, MLKCons, MLKFuncallable;
+ NSMutableDictionary, NSString, MLKCons;
@interface MLKLexicalContext : MLKLispValue
@@ -47,6 +48,14 @@
symbolMacros:(NSDictionary *)symbolMacros
declarations:(id)declarations;
++(MLKLexicalContext *) contextWithParent:(MLKLexicalContext *)aContext
+ variables:(NSSet *)vars
+ functions:(NSSet *)functions
+ goTags:(NSDictionary *)goTags
+ macros:(NSDictionary *)macros
+ symbolMacros:(NSDictionary *)symbolMacros
+ declarations:(id)declarations;
+
+(MLKLexicalContext *) globalContext;
-(BOOL) symbolNamesFunction:(MLKSymbol *)symbol;
@@ -54,10 +63,11 @@
-(BOOL) symbolNamesSymbolMacro:(MLKSymbol *)symbol;
-(id) macroForSymbol:(MLKSymbol *)symbol;
--(void) setMacro:(MLKFuncallable *)function forSymbol:(MLKSymbol *)symbol;
+-(void) setMacro:(id <MLKFuncallable>)function forSymbol:(MLKSymbol *)symbol;
+-(void) addMacro:(id <MLKFuncallable>)value forSymbol:(MLKSymbol *)symbol;
-(id) symbolMacroForSymbol:(MLKSymbol *)symbol;
--(void) setSymbolMacro:(MLKFuncallable *)function forSymbol:(MLKSymbol *)symbol;
+-(void) setSymbolMacro:(id <MLKFuncallable>)function forSymbol:(MLKSymbol *)symbol;
-(id) goTagForSymbol:(MLKSymbol *)symbol;