
**Describe the unexpected behaviour**
Clickhouse parses enum object unexpectedly when enum object literal value is 08 or 09. I tried to debug the problem and it seems that  Which::type is returning Float64 and hence ENUMparser is throwing error.

**Notice  dot symbol after 8 literal value in generated SQL .  This is not happening for values 07,01,03... so on . This is failing for only ( = 08 and =09)**

**How to reproduce**
````
 :) CREATE TABLE t1 (`Road_Surface_Condition` Enum8('00 - Unkown' = 0,'07 - Others' = 07,'08 - Loose sand and gravel' = 8, '09 - Spilled liquid' = 9),objectId UInt32)Engine=MergeTree ORDER BY objectId

CREATE TABLE t1
(
    `Road_Surface_Condition` Enum8('00 - Unkown' = 0, '07 - Others' = 7, '08 - Loose sand and gravel' = 8, '09 - Spilled liquid' = 9),
    `objectId` UInt32
)
ENGINE = MergeTree
ORDER BY objectId

Query id: fc946666-baeb-49af-bda2-72df3fd5d6ea

Ok.

0 rows in set. Elapsed: 0.028 sec. 

:) CREATE TABLE t1 (`Road_Surface_Condition` Enum8('00 - Unkown' = 0,'07 - Others' = 07),objectId UInt32)Engine=MergeTree ORDER BY objectId

CREATE TABLE t1
(
    `Road_Surface_Condition` Enum8('00 - Unkown' = 0, '07 - Others' = 7),
    `objectId` UInt32
)
ENGINE = MergeTree
ORDER BY objectId

Query id: ee00d448-d038-4876-85c3-a607b0a85d4c


0 rows in set. Elapsed: 0.003 sec. 

Received exception from server (version 22.3.6):
Code: 57. DB::Exception: Received from localhost:9000. DB::Exception: Table default.t1 already exists. (TABLE_ALREADY_EXISTS)

 :) CREATE TABLE t2 (`Road_Surface_Condition` Enum8('00 - Unkown' = 0,'07 - Others' = 07),objectId UInt32)Engine=MergeTree ORDER BY objectId

CREATE TABLE t2
(
    `Road_Surface_Condition` Enum8('00 - Unkown' = 0, '07 - Others' = 7),
    `objectId` UInt32
)
ENGINE = MergeTree
ORDER BY objectId

Query id: f6eb283f-0480-43ad-8fc0-08925a6a13e5

Ok.

0 rows in set. Elapsed: 0.027 sec. 
 :) `
```

* Which ClickHouse server version to use
 v22.6

* Which interface to use, if matters
command line client. 

**Expected behavior**
Table should be created successfully with specified Enum column .

**Error message and/or stacktrace**
```
Received exception from server (version 22.3.6):
Code: 223. DB::exception: Received from localhost:9000. DB::exception: Elements of Enum data type must be of form: 'name' = number, where name is string literal and number is an integer. (UNEXPECTED_AST_STRUCTURE)
```

**Additional context**

{
    if (!elem_parser->parse(pos, node, expected))
        return false;
    /** Little hack.
      *
      * In the SELECT section, we allow parsing aliases without specifying the AS keyword.
      * These aliases can not be the same as the query keywords.
      * And the expression itself can be an identifier that matches the keyword.
      * For example, a column may be called where. And in the query it can be written `SELECT where AS x FROM table` or even `SELECT where x FROM table`.
      * Even can be written `SELECT where AS from FROM table`, but it can not be written `SELECT where from FROM table`.
      * See the ParserAlias implementation for details.
      *
      * But there is a small problem - an inconvenient error message if there is an extra comma in the SELECT section at the end.
      * Although this error is very common. Example: `SELECT x, y, z, FROM tbl`
      * If you do nothing, it's parsed as a column with the name FROM and alias tbl.
      * To avoid this situation, we do not allow the parsing of the alias without the AS keyword for the identifier with the name FROM.
      *
      * Note: this also filters the case when the identifier is quoted.
      * Example: SELECT x, y, z, `FROM` tbl. But such a case could be solved.
      *
      * In the future it would be easier to disallow unquoted identifiers that match the keywords.
      */
    bool allow_alias_without_as_keyword_now = allow_alias_without_as_keyword;
    if (allow_alias_without_as_keyword)
        if (auto opt_id = tryGetIdentifierName(node))
            if (0 == strcasecmp(opt_id->data(), "FROM"))
                allow_alias_without_as_keyword_now = false;