From 9d5d6b1008b99cc702d26de9c652b497ae40f0f1 Mon Sep 17 00:00:00 2001 From: Darren Burns Date: Tue, 1 Feb 2022 12:37:22 +0000 Subject: [PATCH] Renaming "declaration" tokens to differentiate between rule and variable declarations --- src/textual/css/parse.py | 16 ++++++++-------- src/textual/css/tokenize.py | 34 +++++++++++++++++----------------- tests/css/test_tokenize.py | 8 ++++---- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/textual/css/parse.py b/src/textual/css/parse.py index 9062df769..17fe3d982 100644 --- a/src/textual/css/parse.py +++ b/src/textual/css/parse.py @@ -56,7 +56,7 @@ def parse_selectors(css_selectors: str) -> tuple[SelectorSet, ...]: rule_selectors.append(selectors[:]) selectors.clear() combinator = None - elif token.name == "declaration_set_start": + elif token.name == "rule_declaration_set_start": break elif token.name == "combinator_child": combinator = CombinatorType.CHILD @@ -98,7 +98,7 @@ def parse_rule_set(tokens: Iterator[Token], token: Token) -> Iterable[RuleSet]: rule_selectors.append(selectors[:]) selectors.clear() combinator = None - elif token.name == "declaration_set_start": + elif token.name == "rule_declaration_set_start": break elif token.name == "combinator_child": combinator = CombinatorType.CHILD @@ -128,9 +128,9 @@ def parse_rule_set(tokens: Iterator[Token], token: Token) -> Iterable[RuleSet]: while True: token = next(tokens) token_name = token.name - if token_name in ("whitespace", "declaration_end"): + if token_name in ("whitespace", "rule_declaration_end"): continue - if token_name == "declaration_name": + if token_name == "rule_declaration_name": if declaration.tokens: try: styles_builder.add_declaration(declaration) @@ -138,7 +138,7 @@ def parse_rule_set(tokens: Iterator[Token], token: Token) -> Iterable[RuleSet]: errors.append((error.token, error.message)) declaration = Declaration(token, "") declaration.name = token.value.rstrip(":") - elif token_name == "declaration_set_end": + elif token_name == "rule_declaration_set_end": break else: declaration.tokens.append(token) @@ -178,9 +178,9 @@ def parse_declarations(css: str, path: str) -> Styles: if token is None: break token_name = token.name - if token_name in ("whitespace", "declaration_end", "eof"): + if token_name in ("whitespace", "rule_declaration_end", "eof"): continue - if token_name == "declaration_name": + if token_name == "rule_declaration_name": if declaration and declaration.tokens: try: styles_builder.add_declaration(declaration) @@ -189,7 +189,7 @@ def parse_declarations(css: str, path: str) -> Styles: raise declaration = Declaration(token, "") declaration.name = token.value.rstrip(":") - elif token_name == "declaration_set_end": + elif token_name == "rule_declaration_set_end": break else: if declaration: diff --git a/src/textual/css/tokenize.py b/src/textual/css/tokenize.py index fd0e7a1fd..c8c392cd7 100644 --- a/src/textual/css/tokenize.py +++ b/src/textual/css/tokenize.py @@ -44,25 +44,25 @@ expect_selector_continue = Expect( selector=r"[a-zA-Z_\-]+", combinator_child=">", new_selector=r",", - declaration_set_start=r"\{", + rule_declaration_set_start=r"\{", ) -expect_declaration = Expect( +expect_rule_declaration = Expect( whitespace=r"\s+", comment_start=r"\/\*", - declaration_name=r"[a-zA-Z_\-]+\:", - declaration_set_end=r"\}", + rule_declaration_name=r"[a-zA-Z_\-]+\:", + rule_declaration_set_end=r"\}", ) -expect_declaration_solo = Expect( +expect_rule_declaration_solo = Expect( whitespace=r"\s+", comment_start=r"\/\*", - declaration_name=r"[a-zA-Z_\-]+\:", - declaration_set_end=r"\}", + rule_declaration_name=r"[a-zA-Z_\-]+\:", + rule_declaration_set_end=r"\}", ).expect_eof(True) -expect_declaration_content = Expect( - declaration_end=r"\n|;", +expect_rule_declaration_content = Expect( + rule_declaration_end=r"\n|;", whitespace=r"\s+", comment_start=r"\/\*", scalar=r"\-?\d+\.?\d*(?:fr|%|w|h|vw|vh)", @@ -74,7 +74,7 @@ expect_declaration_content = Expect( string=r"\".*?\"", important=r"\!important", comma=",", - declaration_set_end=r"\}", + rule_declaration_set_end=r"\}", ) @@ -99,10 +99,10 @@ class TokenizerState: "selector_id": expect_selector_continue, "selector_class": expect_selector_continue, "selector_universal": expect_selector_continue, - "declaration_set_start": expect_declaration, - "declaration_name": expect_declaration_content, - "declaration_end": expect_declaration, - "declaration_set_end": expect_root_scope, + "rule_declaration_set_start": expect_rule_declaration, + "rule_declaration_name": expect_rule_declaration_content, + "rule_declaration_end": expect_rule_declaration, + "rule_declaration_set_end": expect_root_scope, } def __call__(self, code: str, path: str) -> Iterable[Token]: @@ -123,10 +123,10 @@ class TokenizerState: class DeclarationTokenizerState(TokenizerState): - EXPECT = expect_declaration_solo + EXPECT = expect_rule_declaration_solo STATE_MAP = { - "declaration_name": expect_declaration_content, - "declaration_end": expect_declaration_solo, + "rule_declaration_name": expect_rule_declaration_content, + "rule_declaration_end": expect_rule_declaration_solo, } diff --git a/tests/css/test_tokenize.py b/tests/css/test_tokenize.py index a795df024..bbbd6f562 100644 --- a/tests/css/test_tokenize.py +++ b/tests/css/test_tokenize.py @@ -64,11 +64,11 @@ def test_variables_declarations_amongst_rulesets(): Token(name='variable_declaration_end', value=';', path='', code=css, location=(0, 4)), Token(name='whitespace', value=' ', path='', code=css, location=(0, 5)), Token(name='selector_start_class', value='.thing', path='', code=css, location=(0, 6)), - Token(name='declaration_set_start', value='{', path='', code=css, location=(0, 12)), - Token(name='declaration_name', value='text:', path='', code=css, location=(0, 13)), + Token(name='rule_declaration_set_start', value='{', path='', code=css, location=(0, 12)), + Token(name='rule_declaration_name', value='text:', path='', code=css, location=(0, 13)), Token(name='token', value='red', path='', code=css, location=(0, 18)), - Token(name='declaration_end', value=';', path='', code=css, location=(0, 21)), - Token(name='declaration_set_end', value='}', path='', code=css, location=(0, 22)), + Token(name='rule_declaration_end', value=';', path='', code=css, location=(0, 21)), + Token(name='rule_declaration_set_end', value='}', path='', code=css, location=(0, 22)), Token(name='whitespace', value=' ', path='', code=css, location=(0, 23)), Token(name='variable_declaration_start', value='$y:', path='', code=css, location=(0, 24)), Token(name='number', value='2', path='', code=css, location=(0, 27)),