修正前一版的小錯誤，另外寫了processProgramNode和processDeclartionNode的function