summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Keyword.xs21
-rw-r--r--lib/Parse/Keyword.pm1
2 files changed, 22 insertions, 0 deletions
diff --git a/Keyword.xs b/Keyword.xs
index e5193c8..b041e25 100644
--- a/Keyword.xs
+++ b/Keyword.xs
@@ -112,6 +112,27 @@ parse_block()
RETVAL
SV *
+parse_arithexpr()
+ PREINIT:
+ I32 floor;
+ CV *code;
+ CODE:
+ REENTER_PARSER;
+
+ floor = start_subparse(0, CVf_ANON);
+ code = newATTRSUB(floor, NULL, NULL, NULL, parse_arithexpr(0));
+
+ LEAVE_PARSER;
+
+ if (CvCLONE(code)) {
+ code = cv_clone(code);
+ }
+
+ RETVAL = newRV_inc((SV*)code);
+ OUTPUT:
+ RETVAL
+
+SV *
lex_peek(len = 1)
UV len
CODE:
diff --git a/lib/Parse/Keyword.pm b/lib/Parse/Keyword.pm
index ee0049a..83acbbd 100644
--- a/lib/Parse/Keyword.pm
+++ b/lib/Parse/Keyword.pm
@@ -49,6 +49,7 @@ sub import {
lex_read_space
lex_read
parse_block
+ parse_arithexpr
compiling_package
lex_stuff
);