def program(self):
        """
        program: (statement)*
        """
        root = Program()

        while self.token.nature != Nature.EOF:
            root.children.append(self.statement())

        return root