Skip to content
Snippets Groups Projects
  • Erwan Jahier's avatar
    65c62005
    Unnest array iterator calls by modifying the Lic printer. · 65c62005
    Erwan Jahier authored
    The  idea  is  the  following:  each  time  a  nested  iterator  call
    (map<<map<<n,3>>,4>>) is  encountered, we  create a fresh  alias name
    (create_alias_name) ad we  add it in the node_alias_tbl.   At the end
    of the  compilation, LicDump.dump_node_alias is  called, which prints
    the definition of those node aliases.
    
    For example, the expression  "map<<map<<n,3>>,4>>" is printed like this:
    
        map<<_node_alias1, 4>>
    
    and later, the node alias is defined:
    
        node _node_alias1(x:int) returns(y:int); let y = map<<n,3>>(x); tel;
    65c62005
    History
    Unnest array iterator calls by modifying the Lic printer.
    Erwan Jahier authored
    The  idea  is  the  following:  each  time  a  nested  iterator  call
    (map<<map<<n,3>>,4>>) is  encountered, we  create a fresh  alias name
    (create_alias_name) ad we  add it in the node_alias_tbl.   At the end
    of the  compilation, LicDump.dump_node_alias is  called, which prints
    the definition of those node aliases.
    
    For example, the expression  "map<<map<<n,3>>,4>>" is printed like this:
    
        map<<_node_alias1, 4>>
    
    and later, the node alias is defined:
    
        node _node_alias1(x:int) returns(y:int); let y = map<<n,3>>(x); tel;