Related articles |
---|
lex/yacc: Macro expansion janovetz@eehpx3.cen.uiuc.edu (1995-09-26) |
Newsgroups: | comp.compilers |
From: | janovetz@eehpx3.cen.uiuc.edu (Jacob W Janovetz) |
Keywords: | lex, yacc, question, macros |
Organization: | University of Illinois at Urbana |
Date: | Tue, 26 Sep 1995 22:58:57 GMT |
Hello,
Can someone give me a recommendation as to how to implement good
macro expansion in lex/yacc? I'm writing an assembler and would like
to implement compile-time variables and equates, but I'm not sure of
an acceptable way to do things like substitutions. The O'Reilley
book doesn't go into this much (that I can see).
Jake
--
janovetz@coewl.cen.uiuc.edu
University of Illinois
[It's true, we didn't talk about that at all. There's two approaches. Either
you can do lexical macros, in which you stuff the macro text into the
lexer, interpolating arguments when you see a code in the text that calls
for one, or you can do parser macros, in which you splice a piece of parse
tree into the tree the parser is creating, replacing dummy argument nodes in
the parse tree with the trees for the actual arguments. Most assemblers
don't even create a parse tree, so I'd take the lexical route. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.