### Godot version

4.0

### System information

All OS/Hardware

### Issue description

Not sure if it's a bug / inconsistency or a willingness 😄

When writing numbers in GDScript, we can use `_` character to make number more readable for a human. Rules for this character differ depending on where it is used : before or in decimal part, making its usage inconsistent. 
- When use before decimal part, only an underscore can not follow another undersocre
- In decimal part, multiple underscores can be write without any complaint of tokenizer



### Steps to reproduce

Here is test functions to illustrate

```gdscript
func test_number_allowed_without_error() -> void:
    var a:int = 1_2_3_4_5_6
    var b:int = 123_456
    var c:int = 1.2_3_4_5_6
    var d:int = 1.2_____3_____4____5_____6
    var e:int = 1._2_3_4_5
    var f:int = 1.________23456

func test_number_not_allowed() -> void:
    var a:int = 1__2
    var b:int = 1__2.1__2
    var c:int = _1.23456
```

With a screen to show editor syntax errors

![image](https://user-images.githubusercontent.com/121614863/220851058-38439a3f-3ba8-40fa-9556-a0faf045c943.png)

### Minimal reproduction project

N/A
Token error = error_stack.back()->get();
	error_stack.pop_back();
	return error;
}
GDScriptTokenizer::Token GDScriptTokenizer::make_token(Token::Type p_type) {
	Token token(p_type);
	token.start_line = start_line;
	token.end_line = line;
	token.start_column = start_column;
	token.end_column = column;
	token.leftmost_column = leftmost_column;
	token.rightmost_column = rightmost_column;
	token.source = String(_start, _current - _start);
	if (p_type != Token::ERROR && cursor_line > -1) {
		
		int offset = 0;
		while (_peek(offset) == ' ' || _peek(offset) == '\t') {
			offset++;
		}
		int last_column = column + offset;
		
		if (start_line == line) {
			
			if (cursor_line == start_line && cursor_column >= start_column && cursor_column <= last_column) {
				token.cursor_position = cursor_column - start_column;
				if (cursor_column == start_column) {
					token.cursor_place = CURSOR_BEGINNING;
				} else if (cursor_column < column) {
					token.cursor_place = CURSOR_MIDDLE;
				} else {