属性文法の面倒な点

Attribute Grammars を読んでみる.これの22ページあたりに出てくる文法をとりあげてみる.

  • Symbol-table を毎回書かなければいけない
  • add-item て? 副作用があっていいの?
 ::= program  is 
   Symbol-table() <-
       add-item( (Name(), program),
                  empty-table)

  ::=  begin  end
   Symbol-table() <-
       table-union( Symbol-table(),
                Symbol-table())

 ::=  := 
   Symbol-table() <- Symbol-table()
   Type() <-
      lookup-type( Name(),
                   Symbol-table())

 ::= write 
   Symbol-table() <- Symbol-table()
   Type() <- integer