aboutsummaryrefslogtreecommitdiff
path: root/parser.cpp
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-09 10:31:09 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-09 10:31:09 +0800
commit0c606491335e99017897a7710461214412243dd7 (patch)
treebb14db40980d5029d9e582cb0b130e328657d401 /parser.cpp
parente782bbeb805fffaaa4a118fb88be96894ac68c28 (diff)
...
Diffstat (limited to 'parser.cpp')
-rw-r--r--parser.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/parser.cpp b/parser.cpp
index ff21b7b..97482d4 100644
--- a/parser.cpp
+++ b/parser.cpp
@@ -149,6 +149,9 @@ Pair *ASTGenerator::absorb(Tokenizor *tk) {
FrameObj **top_ptr = parse_stack;
for (;;)
{
+ if (top_ptr == parse_stack + PARSE_STACK_SIZE)
+ throw TokenError("Parser", RUN_ERR_STACK_OVERFLOW);
+
if (top_ptr - parse_stack > 1 &&
!IS_BRAKET(*(top_ptr - 1)) &&
IS_BRAKET(*(top_ptr - 2)))