diff options
author | Ivan Enderlin <ivan.enderlin@hoa-project.net> | 2014-05-21 08:50:55 +0200 |
---|---|---|
committer | Ivan Enderlin <ivan.enderlin@hoa-project.net> | 2014-05-21 08:53:31 +0200 |
commit | 3f019dd711477be78bcdc6718d1aab890ca9bb12 (patch) | |
tree | f4615a4c901ebe2769bea8f95a46d05d9102d06f | |
parent | b5fcc37c476df179f020ea6686f7ecfe4d3dc739 (diff) | |
download | Praspel-3f019dd711477be78bcdc6718d1aab890ca9bb12.zip Praspel-3f019dd711477be78bcdc6718d1aab890ca9bb12.tar.gz Praspel-3f019dd711477be78bcdc6718d1aab890ca9bb12.tar.bz2 |
Add syntactic sugar for class().
\C <=> class('C').
-rw-r--r-- | Grammar.pp | 7 | ||||
-rw-r--r-- | Visitor/Interpreter.php | 6 |
2 files changed, 11 insertions, 2 deletions
@@ -235,7 +235,7 @@ constant: scalar() | array() scalar: - <null> | boolean() | number() | string() | regex() | range() + <null> | boolean() | number() | string() | regex() | class() | range() boolean: <true> | <false> @@ -255,6 +255,9 @@ quoted_string: #regex: <regex> +#class: + classname() + #range: number() ::range:: number() | number() ::range:: #left_range @@ -292,7 +295,7 @@ identifier: | <result> #classname: - ::backslash::? <identifier> ( ::backslash:: <identifier> )* + ::backslash:: <identifier> ( ::backslash:: <identifier> )* herestring: ::heredoc_:: diff --git a/Visitor/Interpreter.php b/Visitor/Interpreter.php index ad60b68..0a5c234 100644 --- a/Visitor/Interpreter.php +++ b/Visitor/Interpreter.php @@ -473,6 +473,12 @@ class Interpreter implements \Hoa\Visitor\Visit { return realdom()->regex($regex); break; + case '#class': + $classname = $element->getChild(0)->accept($this, $handle, false); + + return realdom()->class($classname); + break; + case 'token': $tId = $element->getValueToken(); $value = $element->getValueValue(); |