LARA

package tool.analyzer
 
trait Analyzer {
  self: Reporter =>
 
  import parser.Trees._
  import Symbols._
 
  def analyzeSymbols(prog: Program): GlobalScope = {
    val gs = collectSymbols(prog)
    terminateIfErrors
    setSymbols(prog, gs)
    gs
  }
 
  private def collectSymbols(prog: Program): GlobalScope = /* ... */
 
  private def setSymbols(prog: Program, gs: GlobalScope): Unit = /* ... */
}