void BaseSemanticWalker::setCurrentScope(RefPortugolAST id, 
                                         const SymbolList& params) {
  _currentScopeSymbol = 
      _symtable->getSymbol(id->getText(), params.typeList());

  _symtable->setScope(_currentScopeSymbol);
}
void BaseSemanticWalker::declareProc(RefPortugolAST id,
                                     SymbolList& params,
                                     Type *rettype) {

  Type *type = _typeBuilder->subprogramType(params.typeList(), rettype);

  Symbol s(id->getText(),
            type,
            _symtable->globalScope(),
            _symtable->unit(),
            id->getLine(),
            id->getColumn());

  declareProc(s, params);

}