From 172fe17e991e5cdff87a0d794bcb7272e4824c95 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sun, 3 Aug 2008 18:58:42 +0200 Subject: Make MACROEXPAND-1 aware of symbol macros. --- MLKRoot.m | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'MLKRoot.m') diff --git a/MLKRoot.m b/MLKRoot.m index f155733..e3680f3 100644 --- a/MLKRoot.m +++ b/MLKRoot.m @@ -229,12 +229,22 @@ static id truify (BOOL value) id form = [args objectAtIndex:0]; id env = [args count] > 1 ? denullify([args objectAtIndex:1]) : nil; MLKLexicalContext *context = env ? (id)env : (id)[MLKLexicalContext globalContext]; + id macrofun = nil; if ([form isKindOfClass:[MLKCons class]] && (![form car] || [[form car] isKindOfClass:[MLKSymbol class]]) && [context symbolNamesMacro:[form car]]) { - id macrofun = [context macroForSymbol:[form car]]; + macrofun = [context macroForSymbol:[form car]]; + } + else if ([form isKindOfClass:[MLKSymbol class]] + && [context symbolNamesSymbolMacro:form]) + { + macrofun = [context symbolMacroForSymbol:[form car]]; + } + + if (macrofun) + { form = denullify ([[macrofun applyToArray: [NSArray arrayWithObjects: form, context, nil]] -- cgit v1.2.3