authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-04-10 15:01:21+02:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-04-10 15:01:21+02:00
logaa09e7b63995639084d25329954b1972a72ad12d
treeec7b6e78cc7deac1d185f97fb83861356a79f019
parent3b80e665074cd56d9e24fb8ae0fb9d86e8cd841a

std.zig.tokinizer now treats string identifiers as identifiers


2 files changed, 10 insertions(+), 3 deletions(-)

std/zig/parser.zig+8
...@@ -5041,3 +5041,11 @@ test "zig fmt: use" {...@@ -5041,3 +5041,11 @@ test "zig fmt: use" {
5041 \\5041 \\
5042 );5042 );
5043}5043}
5044
5045test "zig fmt: string identifier" {
5046 try testCanonical(
5047 \\const @"a b" = @"c d".@"e f";
5048 \\fn @"g h"() void {}
5049 \\
5050 );
5051}
std/zig/tokenizer.zig+2-3
...@@ -78,7 +78,6 @@ pub const Token = struct {...@@ -78,7 +78,6 @@ pub const Token = struct {
78 StringLiteral: StrLitKind,78 StringLiteral: StrLitKind,
79 MultilineStringLiteralLine: StrLitKind,79 MultilineStringLiteralLine: StrLitKind,
80 CharLiteral,80 CharLiteral,
81 StringIdentifier,
82 Eof,81 Eof,
83 Builtin,82 Builtin,
84 Bang,83 Bang,
...@@ -434,7 +433,7 @@ pub const Tokenizer = struct {...@@ -434,7 +433,7 @@ pub const Tokenizer = struct {
434433
435 State.SawAtSign => switch (c) {434 State.SawAtSign => switch (c) {
436 '"' => {435 '"' => {
437 result.id = Token.Id.StringIdentifier;436 result.id = Token.Id.Identifier;
438 state = State.StringLiteral;437 state = State.StringLiteral;
439 },438 },
440 else => {439 else => {
...@@ -1136,7 +1135,7 @@ test "tokenizer - string identifier and builtin fns" {...@@ -1136,7 +1135,7 @@ test "tokenizer - string identifier and builtin fns" {
1136 ,1135 ,
1137 []Token.Id{1136 []Token.Id{
1138 Token.Id.Keyword_const,1137 Token.Id.Keyword_const,
1139 Token.Id.StringIdentifier,1138 Token.Id.Identifier,
1140 Token.Id.Equal,1139 Token.Id.Equal,
1141 Token.Id.Builtin,1140 Token.Id.Builtin,
1142 Token.Id.LParen,1141 Token.Id.LParen,