diff --git a/src/parser.ts b/src/parser.ts index 24c0b0dd..efde0a74 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -459,6 +459,23 @@ export class Parser extends DiagnosticEmitter { let parameters = new Array(); let nullable = false; + // Identifier ('.' Identifier)+ + while (tn.skip(Token.DOT)) { + if (tn.skip(Token.IDENTIFIER)) { + // TODO: this works for now, but the representation isn't great + identifier = Node.createIdentifierExpression( + identifier.text + "." + tn.readIdentifier(), + tn.range(identifier.range.start, tn.pos) + ); + } else { + this.error( + DiagnosticCode.Identifier_expected, + tn.range(tn.pos) + ); + return null; + } + } + // Name if (tn.skip(Token.LESSTHAN)) { do {