diff options
| author | Uwe Tews <uwe.tews@googlemail.com> | 2015-05-16 14:47:12 +0200 |
|---|---|---|
| committer | Uwe Tews <uwe.tews@googlemail.com> | 2015-05-16 14:47:12 +0200 |
| commit | d21921de229119e95ba5589e7efdd8328437ddf8 (patch) | |
| tree | a63320fce85d1ee43d94f0fc37b9dc6e60cb60d8 /lexer/smarty_internal_templatelexer.plex | |
| parent | 22bccee35071d058e9c33cf72ee04063b7bdd1e9 (diff) | |
| download | smarty-d21921de229119e95ba5589e7efdd8328437ddf8.tar.gz smarty-d21921de229119e95ba5589e7efdd8328437ddf8.tar.bz2 smarty-d21921de229119e95ba5589e7efdd8328437ddf8.zip | |
- improvement reduce number of lexer tokens on operators and if conditions
Diffstat (limited to 'lexer/smarty_internal_templatelexer.plex')
| -rw-r--r-- | lexer/smarty_internal_templatelexer.plex | 98 |
1 files changed, 10 insertions, 88 deletions
diff --git a/lexer/smarty_internal_templatelexer.plex b/lexer/smarty_internal_templatelexer.plex index 5e6f293a..6bbf1ddb 100644 --- a/lexer/smarty_internal_templatelexer.plex +++ b/lexer/smarty_internal_templatelexer.plex @@ -245,7 +245,7 @@ class Smarty_Internal_Templatelexer smartyblockchildparent = /[\$]smarty\.block\.(child|parent)/ integer = /\d+/ hex = /0[xX][0-9a-fA-F]+/ - math = /\s*(\*|\/|\%)\s*/ + math = /\s*([*]{1,2}|[%\/^&]|[<>]{2})\s*/ comment = /SMARTYldel\*([\S\s]*?)\*SMARTYrdel/ incdec = /\+\+|\-\-/ unimath = /\s*(\+|\-)\s*/ @@ -276,25 +276,9 @@ class Smarty_Internal_Templatelexer id = /[0-9]*[a-zA-Z_]\w*/ literal = /literal/ strip = /strip/ - equals = /\s*==\s*|\s+eq\s+/ - notequals = /\s*!=\s*|\s*<>\s*|\s+(ne|neq)\s+/ - greaterthan = /\s*>\s*|\s+gt\s+/ - lessthan = /\s*<\s*|\s+lt\s+/ - greaterequal = /\s*>=\s*|\s+(ge|gte)\s+/ - lessequal = /\s*<=\s*|\s+(le|lte)\s+/ - mod = /\s+mod\s+/ - identity = /\s*===\s*/ - noneidentity = /\s*!==\s*/ - isoddby = /\s+is\s+odd\s+by\s+/ - isnotoddby = /\s+is\s+not\s+odd\s+by\s+/ - isodd = /\s+is\s+odd/ - isnotodd = /\s+is\s+not\s+odd/ - isevenby = /\s+is\s+even\s+by\s+/ - isnotevenby = /\s+is\s+not\s+even\s+by\s+/ - iseven = /\s+is\s+even/ - isnoteven = /\s+is\s+not\s+even/ - isdivby = /\s+is\s+div\s+by\s+/ - isnotdivby = /\s+is\s+not\s+div\s+by\s+/ + lop = /\s*(([!=][=]{1,2})|([<][=>]?)|([>][=]?)|[&|]{2})\s*/ + tlop = /\s+(eq|ne|neg|gt|ge|gte|lt|le|lte|mod|and|or|xor|(is\s+(not\s+)?(odd|even|div)\s+by))\s+/ + scond = /\s+is\s+(not\s+)?(odd|even)/ isin = /\s+is\s+in\s+/ as = /\s+as\s+/ to = /\s+to\s+/ @@ -306,9 +290,6 @@ class Smarty_Internal_Templatelexer setfilter = /setfilter\s+/ instanceof = /\s+instanceof\s+/ not = /!\s*|not\s+/ - land = /\s*\&\&\s*|\s*and\s+/ - lor = /\s*\|\|\s*|\s*or\s+/ - lxor = /\s*xor\s+/ typecast = /\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\)\s*/ double_quote = /"/ single_quote = /'/ @@ -480,76 +461,18 @@ class Smarty_Internal_Templatelexer instanceof { $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; } - identity{ - $this->token = Smarty_Internal_Templateparser::TP_IDENTITY; + lop { + $this->token = Smarty_Internal_Templateparser::TP_LOGOP; } - noneidentity{ - $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY; + tlop { + $this->token = Smarty_Internal_Templateparser::TP_TLOGOP; } - equals{ - $this->token = Smarty_Internal_Templateparser::TP_EQUALS; - } - notequals{ - $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS; - } - greaterequal{ - $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL; - } - lessequal{ - $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL; - } - greaterthan{ - $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN; - } - lessthan{ - $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN; - } - mod{ - $this->token = Smarty_Internal_Templateparser::TP_MOD; + scond { + $this->token = Smarty_Internal_Templateparser::TP_SINGLECOND; } not{ $this->token = Smarty_Internal_Templateparser::TP_NOT; } - land { - $this->token = Smarty_Internal_Templateparser::TP_LAND; - } - lor { - $this->token = Smarty_Internal_Templateparser::TP_LOR; - } - lxor { - $this->token = Smarty_Internal_Templateparser::TP_LXOR; - } - isoddby { - $this->token = Smarty_Internal_Templateparser::TP_ISODDBY; - } - isnotoddby { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY; - } - - isodd { - $this->token = Smarty_Internal_Templateparser::TP_ISODD; - } - isnotodd { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD; - } - isevenby { - $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY; - } - isnotevenby { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY; - } - iseven{ - $this->token = Smarty_Internal_Templateparser::TP_ISEVEN; - } - isnoteven { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN; - } - isdivby { - $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY; - } - isnotdivby { - $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY; - } typecast { $this->token = Smarty_Internal_Templateparser::TP_TYPECAST; } @@ -562,7 +485,6 @@ class Smarty_Internal_Templatelexer openB { $this->token = Smarty_Internal_Templateparser::TP_OPENB; } - closeB { $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; } |
