From af91c8dc3b23bd321dda2d0c98af71bd6d660f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Sat, 6 Jul 2019 22:18:19 +0200 Subject: [PATCH] Add new angle parentheses and rename BRACKET to CURLY --- smnp/ast/node/block.py | 6 +++--- smnp/ast/node/extend.py | 6 +++--- smnp/token/tokenizer.py | 8 +++++--- smnp/token/type.py | 32 +++++++++++++++++--------------- 4 files changed, 28 insertions(+), 24 deletions(-) diff --git a/smnp/ast/node/block.py b/smnp/ast/node/block.py index 15f255b..4169fab 100644 --- a/smnp/ast/node/block.py +++ b/smnp/ast/node/block.py @@ -13,8 +13,8 @@ class BlockNode(StatementNode): return node return Parser.loop( - Parser.terminalParser(TokenType.OPEN_BRACKET), - Parser.doAssert(StatementNode.parse, f"statement or '{TokenType.CLOSE_BRACKET.key}'"), - Parser.terminalParser(TokenType.CLOSE_BRACKET), + Parser.terminalParser(TokenType.OPEN_CURLY), + Parser.doAssert(StatementNode.parse, f"statement or '{TokenType.CLOSE_CURLY.key}'"), + Parser.terminalParser(TokenType.CLOSE_CURLY), createNode=createNode, )(input) \ No newline at end of file diff --git a/smnp/ast/node/extend.py b/smnp/ast/node/extend.py index 5c58714..c052067 100644 --- a/smnp/ast/node/extend.py +++ b/smnp/ast/node/extend.py @@ -63,8 +63,8 @@ class ExtendNode(StatementNode): return node return Parser.loop( - Parser.terminalParser(TokenType.OPEN_BRACKET), - Parser.doAssert(FunctionDefinitionNode.parse, f"method declaration or '{TokenType.CLOSE_BRACKET.key}'"), - Parser.terminalParser(TokenType.CLOSE_BRACKET), + Parser.terminalParser(TokenType.OPEN_CURLY), + Parser.doAssert(FunctionDefinitionNode.parse, f"method declaration or '{TokenType.CLOSE_CURLY.key}'"), + Parser.terminalParser(TokenType.CLOSE_CURLY), createNode=createNode ) \ No newline at end of file diff --git a/smnp/token/tokenizer.py b/smnp/token/tokenizer.py index fe1cac8..1b7af8d 100644 --- a/smnp/token/tokenizer.py +++ b/smnp/token/tokenizer.py @@ -11,12 +11,14 @@ from smnp.token.type import TokenType tokenizers = ( # Characters - defaultTokenizer(TokenType.OPEN_BRACKET), - defaultTokenizer(TokenType.CLOSE_BRACKET), + defaultTokenizer(TokenType.OPEN_CURLY), + defaultTokenizer(TokenType.CLOSE_CURLY), defaultTokenizer(TokenType.OPEN_PAREN), + defaultTokenizer(TokenType.CLOSE_PAREN), defaultTokenizer(TokenType.OPEN_SQUARE), defaultTokenizer(TokenType.CLOSE_SQUARE), - defaultTokenizer(TokenType.CLOSE_PAREN), + defaultTokenizer(TokenType.OPEN_ANGLE), + defaultTokenizer(TokenType.CLOSE_ANGLE), defaultTokenizer(TokenType.ASTERISK), defaultTokenizer(TokenType.ASSIGN), defaultTokenizer(TokenType.COMMA), diff --git a/smnp/token/type.py b/smnp/token/type.py index bf0b422..4be3ad3 100644 --- a/smnp/token/type.py +++ b/smnp/token/type.py @@ -2,30 +2,32 @@ from enum import Enum class TokenType(Enum): + OPEN_CURLY = '{' + CLOSE_CURLY = '}' OPEN_PAREN = '(' CLOSE_PAREN = ')' - ASTERISK = '*' - STRING = 'string' - IDENTIFIER = 'identifier' - COMMA = ',' - INTEGER = 'integer' - OPEN_BRACKET = '{' - CLOSE_BRACKET = '}' - ASSIGN = '=' - NOTE = 'note' - COMMENT = 'comment' - PERCENT = 'percent' - MINUS = '-' - FUNCTION = 'function' - RETURN = 'return' - DOT = '.' OPEN_SQUARE = '[' CLOSE_SQUARE = ']' + OPEN_ANGLE = '<' + CLOSE_ANGLE = '>' + ASTERISK = '*' + ASSIGN = '=' + COMMA = ',' + MINUS = '-' + DOT = '.' + INTEGER = 'integer' + STRING = 'string' + NOTE = 'note' TYPE = 'type' + FUNCTION = 'function' + RETURN = 'return' EXTEND = 'extend' IMPORT = 'import' FROM = 'from' AS = 'as' + IDENTIFIER = 'identifier' + COMMENT = 'comment' + PERCENT = 'percent' @property def key(self):