diff options
author | Eevee <eevee.git@veekun.com> | 2013-05-29 16:32:51 -0700 |
---|---|---|
committer | Eevee <eevee.git@veekun.com> | 2013-05-29 16:32:51 -0700 |
commit | 66d7543593fac2d0c53f2294148ce99434d73ab4 (patch) | |
tree | 758369f5bf298b4235b8419759b1546c768a9310 /scss/src | |
parent | 18f3d3aebe2b8a0b743d532f4614913b4e586211 (diff) | |
download | pyscss-66d7543593fac2d0c53f2294148ce99434d73ab4.tar.gz |
Simplify BooleanValue.
Diffstat (limited to 'scss/src')
-rw-r--r-- | scss/src/grammar/grammar.g | 5 | ||||
-rw-r--r-- | scss/src/grammar/grammar.py | 36 |
2 files changed, 17 insertions, 24 deletions
diff --git a/scss/src/grammar/grammar.g b/scss/src/grammar/grammar.g index 9713f35..974035b 100644 --- a/scss/src/grammar/grammar.g +++ b/scss/src/grammar/grammar.g @@ -4,7 +4,7 @@ #'(?<!\\s)(?:' + '|'.join(_units) + ')(?![-\\w])' ## Grammar compiled using Yapps: %% -parser CalculatorParser: +parser SassExpression: ignore: "[ \r\t\n]+" token COMMA: "," token LPAR: "\\(|\\[" @@ -29,7 +29,6 @@ parser CalculatorParser: token QSTR: '"[^"]*"' token UNITS: "(?<!\s)(?:px|cm|mm|hz|%)(?![-\w])" token NUM: "(?:\d+(?:\.\d*)?|\.\d+)" - token BOOL: "(?<![-\w])(?:true|false)(?![-\w])" token COLOR: "#(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3})(?![a-fA-F0-9])" token VAR: "\$[-a-zA-Z0-9_]+" token FNCT: "[-a-zA-Z_][-a-zA-Z0-9_]*(?=\()" @@ -95,8 +94,6 @@ parser CalculatorParser: | QSTR {{ return Literal(QuotedStringValue(ParserValue(QSTR))) }} | - BOOL {{ return Literal(BooleanValue(ParserValue(BOOL))) }} - | COLOR {{ return Literal(ColorValue(ParserValue(COLOR))) }} | VAR {{ return Variable(VAR) }} diff --git a/scss/src/grammar/grammar.py b/scss/src/grammar/grammar.py index eb4e798..e25a851 100644 --- a/scss/src/grammar/grammar.py +++ b/scss/src/grammar/grammar.py @@ -9,7 +9,7 @@ from string import * from yappsrt import * -class CalculatorScanner(Scanner): +class SassExpressionScanner(Scanner): patterns = None _patterns = [ ('":"', ':'), @@ -37,7 +37,6 @@ class CalculatorScanner(Scanner): ('QSTR', '"[^"]*"'), ('UNITS', '(?<!\\s)(?:px|cm|mm|hz|%)(?![-\\w])'), ('NUM', '(?:\\d+(?:\\.\\d*)?|\\.\\d+)'), - ('BOOL', '(?<![-\\w])(?:true|false)(?![-\\w])'), ('COLOR', '#(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3})(?![a-fA-F0-9])'), ('VAR', '\\$[-a-zA-Z0-9_]+'), ('FNCT', '[-a-zA-Z_][-a-zA-Z0-9_]*(?=\\()'), @@ -51,10 +50,10 @@ class CalculatorScanner(Scanner): self.__class__.patterns = [] for t, p in self._patterns: self.patterns.append((t, re.compile(p))) - super(CalculatorScanner, self).__init__(None, ['[ \r\t\n]+'], input) + super(SassExpressionScanner, self).__init__(None, ['[ \r\t\n]+'], input) -class CalculatorParser(Parser): +class SassExpression(Parser): def goal(self): expr_lst = self.expr_lst() v = expr_lst @@ -195,9 +194,6 @@ class CalculatorParser(Parser): elif _token_ == 'QSTR': QSTR = self._scan('QSTR') return Literal(QuotedStringValue(ParserValue(QSTR))) - elif _token_ == 'BOOL': - BOOL = self._scan('BOOL') - return Literal(BooleanValue(ParserValue(BOOL))) elif _token_ == 'COLOR': COLOR = self._scan('COLOR') return Literal(ColorValue(ParserValue(COLOR))) @@ -243,23 +239,23 @@ class CalculatorParser(Parser): return ListLiteral(v, comma=False) if len(v) > 1 else v[0] m_expr_chks = set(['MUL', 'DIV']) - comparison_rsts = set(['LPAR', 'QSTR', 'RPAR', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'ADD', 'FNCT', 'STR', 'VAR', 'EQ', 'ID', 'AND', 'GE', 'BOOL', 'NOT', 'OR']) - u_expr_chks = set(['LPAR', 'COLOR', 'QSTR', 'NUM', 'BOOL', 'FNCT', 'STR', 'VAR', 'ID']) - m_expr_rsts = set(['LPAR', 'SUB', 'QSTR', 'RPAR', 'MUL', 'DIV', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'GE', 'FNCT', 'STR', 'VAR', 'EQ', 'ID', 'AND', 'ADD', 'BOOL', 'NOT', 'OR']) - argspec_item_rsts_ = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'VAR', 'ADD', 'NUM', 'BOOL', '":"', 'STR', 'NOT', 'ID', 'FNCT']) + comparison_rsts = set(['LPAR', 'QSTR', 'RPAR', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'ADD', 'FNCT', 'STR', 'VAR', 'EQ', 'ID', 'AND', 'GE', 'NOT', 'OR']) + u_expr_chks = set(['LPAR', 'COLOR', 'QSTR', 'NUM', 'FNCT', 'STR', 'VAR', 'ID']) + m_expr_rsts = set(['LPAR', 'SUB', 'QSTR', 'RPAR', 'MUL', 'DIV', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'GE', 'FNCT', 'STR', 'VAR', 'EQ', 'ID', 'AND', 'ADD', 'NOT', 'OR']) + argspec_item_rsts_ = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'VAR', 'ADD', 'NUM', '":"', 'STR', 'NOT', 'ID', 'FNCT']) expr_lst_rsts = set(['END', 'COMMA', 'RPAR']) - and_test_rsts = set(['AND', 'LPAR', 'END', 'COLOR', 'QSTR', 'SIGN', 'VAR', 'ADD', 'NUM', 'COMMA', 'FNCT', 'STR', 'NOT', 'BOOL', 'ID', 'RPAR', 'OR']) - atom_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'NOT', 'ADD', 'NUM', 'BOOL', 'FNCT', 'STR', 'VAR', 'RPAR', 'ID']) - u_expr_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'ADD', 'NUM', 'BOOL', 'FNCT', 'STR', 'VAR', 'ID']) - expr_rsts = set(['LPAR', 'END', 'COLOR', 'QSTR', 'RPAR', 'VAR', 'ADD', 'NUM', 'COMMA', 'FNCT', 'STR', 'NOT', 'BOOL', 'ID', 'SIGN', 'OR']) - argspec_item_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'NOT', 'ADD', 'NUM', 'BOOL', 'FNCT', 'STR', 'VAR', 'ID']) + and_test_rsts = set(['AND', 'LPAR', 'END', 'COLOR', 'QSTR', 'SIGN', 'VAR', 'ADD', 'NUM', 'COMMA', 'FNCT', 'STR', 'NOT', 'ID', 'RPAR', 'OR']) + atom_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'NOT', 'ADD', 'NUM', 'FNCT', 'STR', 'VAR', 'RPAR', 'ID']) + u_expr_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'ADD', 'NUM', 'FNCT', 'STR', 'VAR', 'ID']) + expr_rsts = set(['LPAR', 'END', 'COLOR', 'QSTR', 'RPAR', 'VAR', 'ADD', 'NUM', 'COMMA', 'FNCT', 'STR', 'NOT', 'ID', 'SIGN', 'OR']) + argspec_item_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'NOT', 'ADD', 'NUM', 'FNCT', 'STR', 'VAR', 'ID']) argspec_rsts = set(['COMMA', 'RPAR']) - not_test_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'VAR', 'ADD', 'NUM', 'BOOL', 'FNCT', 'STR', 'NOT', 'ID']) - atom_rsts_ = set(['LPAR', 'SUB', 'QSTR', 'RPAR', 'VAR', 'MUL', 'DIV', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'GE', 'FNCT', 'STR', 'UNITS', 'EQ', 'ID', 'AND', 'ADD', 'BOOL', 'NOT', 'OR']) + not_test_rsts = set(['LPAR', 'COLOR', 'QSTR', 'SIGN', 'VAR', 'ADD', 'NUM', 'FNCT', 'STR', 'NOT', 'ID']) + atom_rsts_ = set(['LPAR', 'SUB', 'QSTR', 'RPAR', 'VAR', 'MUL', 'DIV', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'GE', 'FNCT', 'STR', 'UNITS', 'EQ', 'ID', 'AND', 'ADD', 'NOT', 'OR']) comparison_chks = set(['GT', 'GE', 'NE', 'LT', 'LE', 'EQ']) a_expr_chks = set(['ADD', 'SUB']) - a_expr_rsts = set(['LPAR', 'SUB', 'QSTR', 'RPAR', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'GE', 'FNCT', 'STR', 'VAR', 'EQ', 'ID', 'AND', 'ADD', 'BOOL', 'NOT', 'OR']) - expr_slst_rsts = set(['LPAR', 'END', 'COLOR', 'QSTR', 'RPAR', 'VAR', 'ADD', 'NUM', 'COMMA', 'FNCT', 'STR', 'NOT', 'BOOL', 'SIGN', 'ID']) + a_expr_rsts = set(['LPAR', 'SUB', 'QSTR', 'RPAR', 'LE', 'COLOR', 'NE', 'LT', 'NUM', 'COMMA', 'GT', 'END', 'SIGN', 'GE', 'FNCT', 'STR', 'VAR', 'EQ', 'ID', 'AND', 'ADD', 'NOT', 'OR']) + expr_slst_rsts = set(['LPAR', 'END', 'COLOR', 'QSTR', 'RPAR', 'VAR', 'ADD', 'NUM', 'COMMA', 'FNCT', 'STR', 'NOT', 'SIGN', 'ID']) expr_lst_rsts_ = None |