From af3bb591d87b8896604de7e6e11907ee67feaa43 Mon Sep 17 00:00:00 2001 From: "waldemar%netscape.com" Date: Mon, 14 Oct 2002 23:16:15 +0000 Subject: [PATCH] First version git-svn-id: svn://10.0.0.236/trunk@131990 18797224-902f-48f8-a5cc-f745e15eee43 --- .../js2/semantics/Test/RuleAbbreviation.lisp | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 mozilla/js2/semantics/Test/RuleAbbreviation.lisp diff --git a/mozilla/js2/semantics/Test/RuleAbbreviation.lisp b/mozilla/js2/semantics/Test/RuleAbbreviation.lisp new file mode 100644 index 00000000000..860628d7862 --- /dev/null +++ b/mozilla/js2/semantics/Test/RuleAbbreviation.lisp @@ -0,0 +1,55 @@ +(progn + (defparameter *raw* + (generate-world + "RA" + '((grammar rule-abbreviation-grammar :lalr-1 :expression) + + (deftag syntax-error) + (deftype context integer) + (deftype environment integer) + (deftype semantic-exception (tag syntax-error)) + + (rule :subexpression ((validate (-> (context environment) void))) + (production :subexpression (keyword) subexpression-keyword + ((validate (cxt :unused) (env :unused))))) + + (rule :expression ((validate (-> (context environment) void)) (validate2 (-> (context environment) void))) + (production :expression (:subexpression) expression-unary + ((validate cxt env) :forward) + ((validate2 cxt env) + ((validate :subexpression) cxt env))) + (production :expression (:expression * :subexpression) expression-multiply + ((validate cxt env) :forward) + ((validate2 cxt env) + ((validate :expression) cxt env) + ((validate :subexpression) cxt env))) + (production :expression (:subexpression + :subexpression) expression-add + ((validate cxt env) :forward) + ((validate2 cxt env) + ((validate :subexpression 1) cxt env) + ((validate :subexpression 2) cxt env))) + (production :expression (this) expression-this + ((validate cxt env) :forward) + ((validate2 (cxt :unused) (env :unused))))) + (%print-actions ("Validation" validate) ("Evaluation" eval)) + ))) + + (defparameter *rag* (world-grammar *raw* 'rule-abbreviation-grammar))) + +#| +(values + (depict-rtf-to-local-file + "Test/RuleAbbreviationSemantics.rtf" + "Rule Abbreviation Semantics" + #'(lambda (rtf-stream) + (depict-world-commands rtf-stream *raw* :heading-offset 1))) + (depict-html-to-local-file + "Test/RuleAbbreviationSemantics.html" + "Rule Abbreviation Semantics" + t + #'(lambda (html-stream) + (depict-world-commands html-stream *raw* :heading-offset 1)) + :external-link-base "")) +|# + +(length (grammar-states *rag*))