diff options
Diffstat (limited to 'neb/parser.py')
| -rw-r--r-- | neb/parser.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/neb/parser.py b/neb/parser.py index 930e77e..81f7672 100644 --- a/neb/parser.py +++ b/neb/parser.py @@ -160,6 +160,17 @@ def parseType(token, prev, tokens): if tokens[1+counter].type_ != TokenType.CLOSE_BRACKET: raise ParseError("invalid type definition (expecting close bracket)", tokens[1+counter].line) return Type(f":[]", typ), counter + 3 + + elif tokens[0].type_ == TokenType.OPEN_BRACE: + # only format currently supported: + # [ <type> ] + if tokens[1].type_ != TokenType.COLON: + raise ParseError("invalid type definition (expecting colon)", tokens[1].line) + typ, counter = parseType(tokens[1], tokens[0], tokens[2:]) + if tokens[1+counter].type_ != TokenType.CLOSE_BRACE: + raise ParseError("invalid type definition (expecting close brace)", tokens[1+counter].line) + return Type(":{}", typ), counter + 3 + else: raise ParseError("invalid type definition!", tokens[0].line) |
