Shorten the array syntax

This commit is contained in:
2025-05-30 12:56:11 +02:00
parent 273e26b119
commit 44da33ae87
3 changed files with 303 additions and 304 deletions

View File

@ -205,20 +205,18 @@ VAR
WrittenBytes: CARDINAL;
BEGIN
WriteString('ARRAY');
Token := transpiler_lex(ALexer);
Token := lexer_current(ALexer);
IF Token.Kind <> lexerKindOf THEN
Write('[');
Token := transpiler_lex(ALexer);
WrittenBytes := WriteNBytes(StdOut, ADDRESS(ALexer^.Current - ALexer^.Start), ALexer^.Start);
Token := transpiler_lex(ALexer);
WriteString('..');
Token := transpiler_lex(ALexer);
WrittenBytes := WriteNBytes(StdOut, ADDRESS(ALexer^.Current - ALexer^.Start), ALexer^.Start);
Token := transpiler_lex(ALexer);
Write(']');
IF Token.Kind = lexerKindArray THEN
Token := transpiler_lex(ALexer)
END;
IF Token.Kind <> lexerKindOf THEN
WriteString('[1..');
Token := transpiler_lex(ALexer);
WrittenBytes := WriteNBytes(StdOut, ADDRESS(ALexer^.Current - ALexer^.Start), ALexer^.Start);
Token := transpiler_lex(ALexer);
Write(']')
END;
WriteString(' OF ');
transpile_type_expression(AContext, ALexer)
END transpile_array_type;
@ -285,10 +283,10 @@ BEGIN
IF Token.Kind = lexerKindLeftParen THEN
transpile_enumeration_type(AContext, ALexer)
END;
IF Token.Kind = lexerKindArray THEN
IF (Token.Kind = lexerKindArray) OR (Token.Kind = lexerKindLeftSquare) THEN
transpile_array_type(AContext, ALexer)
END;
IF (Token.Kind = lexerKindPointer) OR (Token.Kind = lexerKindHat) THEN
IF Token.Kind = lexerKindHat THEN
transpile_pointer_type(AContext, ALexer)
END;
IF Token.Kind = lexerKindProc THEN