r"""[a-zA-Z_][a-zA-Z_0-9]*

def t_ID(self, t):
        r"""[a-zA-Z_][a-zA-Z_0-9]*"""

        # If the value is a reserved name, give it the appropriate type (not ID)
        if t.value in self.reserved:
            t.type = self.reserved[t.value]

        # If it's a function, give it the FUNC type
        elif t.value in self.functions:
            t.type = 'FUNC'

        return t