Changes between Version 32 and Version 33 of PIRCDevelopment

Show
Ignore:
Timestamp:
08/16/09 20:31:02 (12 years ago)
Author:
kjs
Comment:

various updates

Legend:

Unmodified
Added
Removed
Modified
  • PIRCDevelopment

    v32 v33  
    284284== Macro layer == 
    285285 
     286The macro layer is implemented in both the lexer and the scanner. The syntax to define and expand macros is defined in the parser. This is a fundamental difference from how macros are implemented in IMCC. In IMCC, the macro layer is completely implemented in the lexer. 
     287 
     288Currently, basic macros work, but nested macros do not. This needs to be fixed. 
     289 
    286290== PIRC Parser == 
    287291 
     292The parser is implemented in [source:/trunk/compilers/pirc/src/pir.y]. This is a parser specification that needs to be processed by the Bison program in order to generate the C file.  
     293 
    288294== Symbol Management == 
     295 
     296Symbol management is implemented in [source:/trunk/compilers/pirc/src/pirsymbol.c]. Symbols declared using the {{{.local}}} directive are stored in a symbol table. Whenever an identifier is parsed, it will be looked up in this symbol table. 
     297 
     298All uses of PIR registers (e.g. $I42) are registered as well. The first time a PIR register is used, it is assigned a PASM register. This process is called "coloring". The word "color" is often used in the context of register allocation, since the "classic" algorithm to do so is called "graph-coloring". While the vanilla register allocator does not such algorithm, the field "color" is used for storing the actual PASM register number that was assigned. 
     299 
    289300 
    290301== Constant Folding ==