Adding instanceof to Intermediate

svn: r1318
This commit is contained in:
Kathy Gray 2005-11-14 22:35:42 +00:00
parent e27d64ed8d
commit e1a4d090f6
3 changed files with 16 additions and 11 deletions

View File

@ -536,7 +536,10 @@
[(RelationalExpression <= ShiftExpression)
(make-bin-op #f (build-src 3) '<= $1 $3 (build-src 2 2))]
[(RelationalExpression >= ShiftExpression)
(make-bin-op #f (build-src 3) '>= $1 $3 (build-src 2 2))])
(make-bin-op #f (build-src 3) '>= $1 $3 (build-src 2 2))]
[(RelationalExpression instanceof ReferenceType)
(make-instanceof #f (build-src 3) $1 $3 (build-src 2 2))]
)
(EqualityExpression
[(RelationalExpression) $1]

View File

@ -2137,7 +2137,7 @@
'if-exp-colon getter #f stmt-exp?))
((and (advanced?) (o-bracket? tok))
(parse-expression cur-tok (getter) 'array-acc getter statement-ok? stmt-exp?))
((and (advanced?) (instanceof-token? tok))
((and (or (advanced?) (intermediate?)) (instanceof-token? tok))
(parse-expression cur-tok (getter) 'instanceof getter #f stmt-exp?))
(else cur-tok))))
((dot-op-or-end)
@ -2168,7 +2168,7 @@
((and (advanced?) (if-exp? tok))
(parse-expression cur-tok (parse-expression cur-tok (getter) 'start getter #f #f) 'if-exp-colon getter #f stmt-exp?))
((and (advanced?) (o-bracket? tok)) (parse-expression cur-tok (getter) 'array-acc getter statement-ok? stmt-exp?))
((and (advanced?) (instanceof-token? tok)) (parse-expression cur-tok (getter) 'instanceof getter #f stmt-exp?))
((and (or (advanced?) (intermediate?)) (instanceof-token? tok)) (parse-expression cur-tok (getter) 'instanceof getter #f stmt-exp?))
(else cur-tok)))
;Advanced
((array-acc)
@ -2291,13 +2291,15 @@
;Advanced
((instanceof-array)
(case kind
((O_BRACKET)
((O_BRACE)
(if (intermediate?)
(parse-error "'[' may not follow the name of a type" start end)
(let ((next (getter)))
(if (c-bracket? (get-tok next))
(if (c-brace? (get-tok next))
(parse-expression next (getter) 'instanceof-array getter statement-ok? stmt-exp?)
(parse-error (format "Array types are of the form type[], expected ] found ~a"
(format-out (get-tok next)))
start (get-end next)))))
start (get-end next))))))
(else (parse-expression pre cur-tok 'op-or-end getter statement-ok? stmt-exp?))))
;Advanced
((if-exp-colon)

View File

@ -405,7 +405,7 @@
#f))
(_ tc))) (process-extras (cdr extras) type-recs))
#;(cons (test-case-test (car extras)) (process-extras (cdr extras) type-recs)))
((interact-case? (car extras))
#;((interact-case? (car extras))
(let ((interact-box (interact-case-box (car extras))))
(send interact-box set-level level)
(send interact-box set-records execute-types)