[relaxngcc] 03/03: add bootstrap files as a patch

Timo Aaltonen tjaalton-guest at moszumanska.debian.org
Wed Feb 26 16:18:03 UTC 2014


This is an automated email from the git hooks/post-receive script.

tjaalton-guest pushed a commit to branch master
in repository relaxngcc.

commit 144987758703af916da25e512ff78225d259ef32
Author: Timo Aaltonen <tjaalton at ubuntu.com>
Date:   Wed Feb 26 16:47:07 2014 +0200

    add bootstrap files as a patch
---
 debian/patches/bootstrap-files.diff | 8802 +++++++++++++++++++++++++++++++++++
 debian/patches/series               |    1 +
 2 files changed, 8803 insertions(+)

diff --git a/debian/patches/bootstrap-files.diff b/debian/patches/bootstrap-files.diff
new file mode 100644
index 0000000..5ed08d7
--- /dev/null
+++ b/debian/patches/bootstrap-files.diff
@@ -0,0 +1,8802 @@
+Author: Timo Aaltonen <tjaalton at ubuntu.com>
+Date:   Wed Feb 26 16:44:11 2014 +0200
+
+    add pregenerated files for bootstrapping
+
+diff --git a/src/relaxngcc/datatype/parser/Start.java b/src/relaxngcc/datatype/parser/Start.java
+new file mode 100644
+index 0000000..0427274
+--- /dev/null
++++ b/src/relaxngcc/datatype/parser/Start.java
+@@ -0,0 +1,319 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.datatype.parser;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.datatype.ParserRuntime;
++
++
++
++public class Start extends NGCCHandler {
++    private String uri;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public Start(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 9;
++    }
++
++    public Start(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        $runtime.setURI(uri);
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 9:
++            {
++                if(($__uri == "" && $__local == "datatypeLibrary")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 8;
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 4:
++            {
++                if(($__uri == "" && $__local == "resource")) {
++                    NGCCHandler h = new resource(this, super._source, $runtime, 528);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 2;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "" && $__local == "resource")) {
++                    NGCCHandler h = new resource(this, super._source, $runtime, 527);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if(($__uri == "" && $__local == "datatype")) {
++                        NGCCHandler h = new datatype(this, super._source, $runtime, 524);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        $_ngcc_current_state = 1;
++                        $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                    }
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "" && $__local == "datatype")) {
++                    NGCCHandler h = new datatype(this, super._source, $runtime, 523);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 8:
++            {
++                if(($ai = $runtime.getAttributeIndex("","uri"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 4:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "" && $__local == "datatypeLibrary")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 8:
++            {
++                if(($ai = $runtime.getAttributeIndex("","uri"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 4:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 8:
++            {
++                if(($__uri == "" && $__local == "uri")) {
++                    $_ngcc_current_state = 7;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 4:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "" && $__local == "uri")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 4:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 7:
++            {
++                uri = $value;
++                $_ngcc_current_state = 6;
++                action0();
++            }
++            break;
++        case 8:
++            {
++                if(($ai = $runtime.getAttributeIndex("","uri"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 528:
++            {
++                $_ngcc_current_state = 2;
++            }
++            break;
++        case 527:
++            {
++                $_ngcc_current_state = 2;
++            }
++            break;
++        case 524:
++            {
++                $_ngcc_current_state = 1;
++            }
++            break;
++        case 523:
++            {
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/datatype/parser/datatype.java b/src/relaxngcc/datatype/parser/datatype.java
+new file mode 100644
+index 0000000..0737a11
+--- /dev/null
++++ b/src/relaxngcc/datatype/parser/datatype.java
+@@ -0,0 +1,420 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.datatype.parser;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.datatype.ParserRuntime;
++
++import relaxngcc.datatype.*;
++
++
++class datatype extends NGCCHandler {
++    private String resName;
++    private Macro m;
++    private String name;
++    private String javaType;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public datatype(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 15;
++    }
++
++    public datatype(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        $runtime.createDatatype(name,javaType,resources,m);
++}
++
++    private void action1()throws SAXException {
++        resources.add( $runtime.getResource(resName) );
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 11:
++            {
++                if(($ai = $runtime.getAttributeIndex("","javaType"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "" && $__local == "useResource")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 7;
++                }
++                else {
++                    $_ngcc_current_state = 2;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 15:
++            {
++                if(($__uri == "" && $__local == "datatype")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 14;
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "" && $__local == "useResource")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 7;
++                }
++                else {
++                    if($__uri.equals("")) {
++                        NGCCHandler h = new macro(this, super._source, $runtime, 541);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "" && $__local == "datatype")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                    action0();
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 11:
++            {
++                if(($ai = $runtime.getAttributeIndex("","javaType"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 4:
++            {
++                if(($__uri == "" && $__local == "useResource")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 2;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "" && $__local == "datatype")) {
++                    NGCCHandler h = new macro(this, super._source, $runtime, 541);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 14:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 13;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 11:
++            {
++                if(($__uri == "" && $__local == "javaType")) {
++                    $_ngcc_current_state = 10;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 6;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 9:
++            {
++                if(($__uri == "" && $__local == "javaType")) {
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 5:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 4;
++                    action1();
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 12:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 11;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 6:
++            {
++                resName = $value;
++                $_ngcc_current_state = 5;
++            }
++            break;
++        case 11:
++            {
++                if(($ai = $runtime.getAttributeIndex("","javaType"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 10:
++            {
++                javaType = $value;
++                $_ngcc_current_state = 9;
++            }
++            break;
++        case 3:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 13:
++            {
++                name = $value;
++                $_ngcc_current_state = 12;
++            }
++            break;
++        case 2:
++            {
++                NGCCHandler h = new macro(this, super._source, $runtime, 541);
++                spawnChildFromText(h, $value);
++            }
++            break;
++        case 7:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 541:
++            {
++                m = ((Macro)$__result__);
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++	  	java.util.ArrayList resources = new java.util.ArrayList();
++  	
++}
++
+diff --git a/src/relaxngcc/datatype/parser/macro.java b/src/relaxngcc/datatype/parser/macro.java
+new file mode 100644
+index 0000000..ed60020
+--- /dev/null
++++ b/src/relaxngcc/datatype/parser/macro.java
+@@ -0,0 +1,193 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.datatype.parser;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.datatype.ParserRuntime;
++
++import relaxngcc.datatype.*;
++
++
++class macro extends NGCCHandler {
++    private String t;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public macro(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public macro(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        m.add(new Macro.Variable($localName,$runtime.getLocator()));
++}
++
++    private void action1()throws SAXException {
++        m.add(t);
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if($__uri.equals("")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    action0();
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 0:
++            {
++                if($__uri.equals("")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    action0();
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    revertToParentFromEnterElement(m, super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(m, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 3:
++            {
++                if($__uri.equals("")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(m, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(m, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                t = $value;
++                $_ngcc_current_state = 0;
++                action1();
++            }
++            break;
++        case 0:
++            {
++                t = $value;
++                $_ngcc_current_state = 0;
++                action1();
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 0) || ($_ngcc_current_state == 1)));
++    }
++
++    
++			Macro m = new Macro();
++		
++}
++
+diff --git a/src/relaxngcc/datatype/parser/resource.java b/src/relaxngcc/datatype/parser/resource.java
+new file mode 100644
+index 0000000..3b384de
+--- /dev/null
++++ b/src/relaxngcc/datatype/parser/resource.java
+@@ -0,0 +1,246 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.datatype.parser;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.datatype.ParserRuntime;
++
++import relaxngcc.datatype.*;
++
++
++class resource extends NGCCHandler {
++    private Macro m;
++    private String name;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public resource(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 6;
++    }
++
++    public resource(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        $runtime.createResource(name,m);
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 2:
++            {
++                if($__uri.equals("")) {
++                    NGCCHandler h = new macro(this, super._source, $runtime, 535);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "" && $__local == "resource")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 5;
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 5:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "" && $__local == "resource")) {
++                    NGCCHandler h = new macro(this, super._source, $runtime, 535);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "" && $__local == "resource")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 5:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 5:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 2;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 4:
++            {
++                name = $value;
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 2:
++            {
++                NGCCHandler h = new macro(this, super._source, $runtime, 535);
++                spawnChildFromText(h, $value);
++            }
++            break;
++        case 5:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 535:
++            {
++                m = ((Macro)$__result__);
++                action0();
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/DefineElement.java b/src/relaxngcc/parser/state/DefineElement.java
+new file mode 100644
+index 0000000..052dc5d
+--- /dev/null
++++ b/src/relaxngcc/parser/state/DefineElement.java
+@@ -0,0 +1,285 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class DefineElement extends NGCCHandler {
++    private String name;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public DefineElement(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 6;
++    }
++
++    public DefineElement(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 5:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 2:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 5;
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 5:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(((($ai = $runtime.getAttributeIndex("","combine"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "defi [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 5:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if((($__uri == "" && $__local == "combine") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access"))))))) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 3:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 2;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 5:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 4:
++            {
++                name = $value;
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                            NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                                NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                                    spawnChildFromText(h, $value);
++                                }
++                                else {
++                                    if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 337, $runtime.grammar.getOrCreate($runtime, name));
++                                        spawnChildFromText(h, $value);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 337:
++            {
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/ExceptNameClass.java b/src/relaxngcc/parser/state/ExceptNameClass.java
+new file mode 100644
+index 0000000..afe270a
+--- /dev/null
++++ b/src/relaxngcc/parser/state/ExceptNameClass.java
+@@ -0,0 +1,192 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class ExceptNameClass extends NGCCHandler {
++    private NameClass nc;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public ExceptNameClass(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public ExceptNameClass(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(nc, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "except")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 3:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice"))))) {
++                    NGCCHandler h = new NameClasses(this, super._source, $runtime, 466);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "except")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(nc, super._cookie, $value);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 466:
++            {
++                nc = ((NameClass)$__result__);
++                $_ngcc_current_state = 2;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 1) || ($_ngcc_current_state == 0)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/GrammarContent.java b/src/relaxngcc/parser/state/GrammarContent.java
+new file mode 100644
+index 0000000..4a8a871
+--- /dev/null
++++ b/src/relaxngcc/parser/state/GrammarContent.java
+@@ -0,0 +1,441 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class GrammarContent extends NGCCHandler {
++    private String href;
++    private String value;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public GrammarContent(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public GrammarContent(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        
++            $runtime.processInclude(href);
++          
++}
++
++    private void action1()throws SAXException {
++        
++            $runtime.getRootRuntime().appendGlobalBody(value);
++          
++}
++
++    private void action2()throws SAXException {
++        
++            $runtime.getRootRuntime().appendGlobalImport(value);
++          
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 19:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include"))))))) {
++                    NGCCHandler h = new GrammarContent(this, super._source, $runtime, 358);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    NGCCHandler h = new StartElement(this, super._source, $runtime, 379);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                        NGCCHandler h = new DefineElement(this, super._source, $runtime, 380);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                            $_ngcc_current_state = 19;
++                        }
++                        else {
++                            if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import")) {
++                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                $_ngcc_current_state = 15;
++                            }
++                            else {
++                                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                    $_ngcc_current_state = 11;
++                                }
++                                else {
++                                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include")) {
++                                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                        $_ngcc_current_state = 7;
++                                    }
++                                    else {
++                                        revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 4:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")))) {
++                    NGCCHandler h = new IncludeContent(this, super._source, $runtime, 343);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    NGCCHandler h = new StartElement(this, super._source, $runtime, 385);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                        NGCCHandler h = new DefineElement(this, super._source, $runtime, 386);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                            $_ngcc_current_state = 19;
++                        }
++                        else {
++                            if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import")) {
++                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                $_ngcc_current_state = 15;
++                            }
++                            else {
++                                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                    $_ngcc_current_state = 11;
++                                }
++                                else {
++                                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include")) {
++                                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                        $_ngcc_current_state = 7;
++                                    }
++                                    else {
++                                        $_ngcc_current_state = 0;
++                                        $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($ai = $runtime.getAttributeIndex("","href"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 18:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 19:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                    NGCCHandler h = new GrammarContent(this, super._source, $runtime, 358);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 4:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include")) {
++                    NGCCHandler h = new IncludeContent(this, super._source, $runtime, 343);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 10:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 7:
++            {
++                if(($ai = $runtime.getAttributeIndex("","href"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "" && $__local == "href")) {
++                    $_ngcc_current_state = 6;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 5:
++            {
++                if(($__uri == "" && $__local == "href")) {
++                    $_ngcc_current_state = 4;
++                    action0();
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 6:
++            {
++                href = $value;
++                $_ngcc_current_state = 5;
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 11:
++            {
++                value = $value;
++                $_ngcc_current_state = 10;
++                action1();
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 7:
++            {
++                if(($ai = $runtime.getAttributeIndex("","href"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 15:
++            {
++                value = $value;
++                $_ngcc_current_state = 14;
++                action2();
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 358:
++            {
++                $_ngcc_current_state = 18;
++            }
++            break;
++        case 343:
++            {
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 379:
++            {
++                $_ngcc_current_state = 0;
++            }
++            break;
++        case 380:
++            {
++                $_ngcc_current_state = 0;
++            }
++            break;
++        case 385:
++            {
++                $_ngcc_current_state = 0;
++            }
++            break;
++        case 386:
++            {
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 1) || ($_ngcc_current_state == 0)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/IncludeContent.java b/src/relaxngcc/parser/state/IncludeContent.java
+new file mode 100644
+index 0000000..43cc4bd
+--- /dev/null
++++ b/src/relaxngcc/parser/state/IncludeContent.java
+@@ -0,0 +1,465 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class IncludeContent extends NGCCHandler {
++    private String name;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public IncludeContent(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public IncludeContent(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 11:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 14;
++                }
++                else {
++                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                        $_ngcc_current_state = 11;
++                    }
++                    else {
++                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                            $_ngcc_current_state = 4;
++                        }
++                        else {
++                            revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++                        }
++                    }
++                }
++            }
++            break;
++        case 4:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")))) {
++                    NGCCHandler h = new IncludeContent(this, super._source, $runtime, 313);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 8:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 14;
++                }
++                else {
++                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                        $_ngcc_current_state = 11;
++                    }
++                    else {
++                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                            $_ngcc_current_state = 4;
++                        }
++                        else {
++                            $_ngcc_current_state = 0;
++                            $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                        }
++                    }
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 11:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 4:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div")) {
++                    NGCCHandler h = new IncludeContent(this, super._source, $runtime, 313);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 13:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(((($ai = $runtime.getAttributeIndex("","combine"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start" [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 8:
++            {
++                if(((($ai = $runtime.getAttributeIndex("","combine"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "defi [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 11:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 10;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 14:
++            {
++                if((($__uri == "" && $__local == "combine") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access"))))))) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 8:
++            {
++                if((($__uri == "" && $__local == "combine") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access"))))))) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 9:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 8;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 11:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 10:
++            {
++                name = $value;
++                $_ngcc_current_state = 9;
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                            NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                                NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                                    spawnChildFromText(h, $value);
++                                }
++                                else {
++                                    if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 324, $runtime.grammar);
++                                        spawnChildFromText(h, $value);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 8:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                            NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                                NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                                    spawnChildFromText(h, $value);
++                                }
++                                else {
++                                    if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 317, $runtime.grammar.redefine($runtime, name));
++                                        spawnChildFromText(h, $value);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 313:
++            {
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 324:
++            {
++                $_ngcc_current_state = 13;
++            }
++            break;
++        case 317:
++            {
++                $_ngcc_current_state = 7;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 1) || ($_ngcc_current_state == 0)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/IncludedGrammarState.java b/src/relaxngcc/parser/state/IncludedGrammarState.java
+new file mode 100644
+index 0000000..ee85990
+--- /dev/null
++++ b/src/relaxngcc/parser/state/IncludedGrammarState.java
+@@ -0,0 +1,176 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++public class IncludedGrammarState extends NGCCHandler {
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public IncludedGrammarState(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 3;
++    }
++
++    public IncludedGrammarState(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 2:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include"))))))) {
++                    NGCCHandler h = new GrammarContent(this, super._source, $runtime, 475);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "grammar")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 2;
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "grammar")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "grammar")) {
++                    NGCCHandler h = new GrammarContent(this, super._source, $runtime, 475);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 475:
++            {
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/NGCCDefineParamState.java b/src/relaxngcc/parser/state/NGCCDefineParamState.java
+new file mode 100644
+index 0000000..5373ec5
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NGCCDefineParamState.java
+@@ -0,0 +1,455 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NGCCDefineParamState extends NGCCHandler {
++    private String access;
++    private String returnType;
++    private String returnValue;
++    private String className;
++    private String params;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NGCCDefineParamState(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie, String _className) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        this.className = _className;
++        $_ngcc_current_state = 14;
++    }
++
++    public NGCCDefineParamState(ParserRuntime runtime, String _className) {
++        this(null, runtime, runtime, -1, _className);
++    }
++
++    private void action0()throws SAXException {
++        
++      param = new NGCCDefineParam($runtime,className,access,returnType,returnValue,params);
++    
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 10:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 6;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 1:
++            {
++                action0();
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 6:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 2;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 10;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(param, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 10:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 6;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                action0();
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 6:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 2;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 10;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 10:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access")) {
++                    $_ngcc_current_state = 12;
++                }
++                else {
++                    $_ngcc_current_state = 6;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                action0();
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type")) {
++                    $_ngcc_current_state = 8;
++                }
++                else {
++                    $_ngcc_current_state = 2;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params")) {
++                    $_ngcc_current_state = 16;
++                }
++                else {
++                    $_ngcc_current_state = 10;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 3:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value")) {
++                    $_ngcc_current_state = 1;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 10:
++            {
++                $_ngcc_current_state = 6;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 15:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params")) {
++                    $_ngcc_current_state = 10;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 11:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access")) {
++                    $_ngcc_current_state = 6;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                action0();
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type")) {
++                    $_ngcc_current_state = 2;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                $_ngcc_current_state = 2;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 14:
++            {
++                $_ngcc_current_state = 10;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 12:
++            {
++                access = $value;
++                $_ngcc_current_state = 11;
++            }
++            break;
++        case 10:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 6;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 16:
++            {
++                params = $value;
++                $_ngcc_current_state = 15;
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 4:
++            {
++                returnValue = $value;
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 1:
++            {
++                action0();
++                $_ngcc_current_state = 0;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 8:
++            {
++                returnType = $value;
++                $_ngcc_current_state = 7;
++            }
++            break;
++        case 6:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 2;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 10;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(param, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 14) || (($_ngcc_current_state == 1) || (($_ngcc_current_state == 0) || (($_ngcc_current_state == 6) || (($_ngcc_current_state == 2) || ($_ngcc_current_state == 10)))))));
++    }
++
++    
++      NGCCDefineParam param;
++    
++}
++
+diff --git a/src/relaxngcc/parser/state/NGCCLocalClass.java b/src/relaxngcc/parser/state/NGCCLocalClass.java
+new file mode 100644
+index 0000000..af4161c
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NGCCLocalClass.java
+@@ -0,0 +1,385 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NGCCLocalClass extends NGCCHandler {
++    private NGCCCallParam cparam;
++    private String name;
++    private Pattern p;
++    private Locator loc;
++    private NGCCDefineParam dparam;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NGCCLocalClass(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie, Pattern _p, Locator _loc) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        this.p = _p;
++        this.loc = _loc;
++        $_ngcc_current_state = 1;
++    }
++
++    public NGCCLocalClass(ParserRuntime runtime, Pattern _p, Locator _loc) {
++        this(null, runtime, runtime, -1, _p, _loc);
++    }
++
++    private void action0()throws SAXException {
++        // wrap it by Scope. Scope will then be turned into a class
++      Scope sc = new Scope($runtime, name);
++      sc.append(p,null);
++      sc.setParam(dparam);
++      
++      // further wrap it by RefPattern
++      p = new RefPattern($runtime, loc, sc, cparam );
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 3:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0 || ($ [...]
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(p, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 2:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0)))) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0 || ($ [...]
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0)))) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    $_ngcc_current_state = 5;
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "with-params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local  [...]
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params"))))) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 3:
++            {
++                NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
++            }
++            break;
++        case 4:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 3:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                        NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                            NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                                NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                                    spawnChildFromText(h, $value);
++                                }
++                                else {
++                                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0) {
++                                        NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                                        spawnChildFromText(h, $value);
++                                    }
++                                    else {
++                                        NGCCHandler h = new NGCCcall(this, super._source, $runtime, 419);
++                                        spawnChildFromText(h, $value);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(p, super._cookie, $value);
++            }
++            break;
++        case 5:
++            {
++                name = $value;
++                $_ngcc_current_state = 4;
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                        NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                            NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                                NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 418, name);
++                                spawnChildFromText(h, $value);
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 419:
++            {
++                cparam = ((NGCCCallParam)$__result__);
++                $_ngcc_current_state = 2;
++            }
++            break;
++        case 418:
++            {
++                dparam = ((NGCCDefineParam)$__result__);
++                action0();
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 0) || ($_ngcc_current_state == 1)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/NGCCalias.java b/src/relaxngcc/parser/state/NGCCalias.java
+new file mode 100644
+index 0000000..7fe8861
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NGCCalias.java
+@@ -0,0 +1,200 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NGCCalias extends NGCCHandler {
++    private String alias;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NGCCalias(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public NGCCalias(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(alias, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(alias, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(alias, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias")) {
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(alias, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias")) {
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(alias, super._cookie, $value);
++            }
++            break;
++        case 3:
++            {
++                alias = $value;
++                $_ngcc_current_state = 2;
++            }
++            break;
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 1) || ($_ngcc_current_state == 0)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/NGCCcall.java b/src/relaxngcc/parser/state/NGCCcall.java
+new file mode 100644
+index 0000000..3c0d793
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NGCCcall.java
+@@ -0,0 +1,270 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NGCCcall extends NGCCHandler {
++    private String alias;
++    private String withParams;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NGCCcall(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 2;
++    }
++
++    public NGCCcall(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        
++      param = new NGCCCallParam($runtime, withParams, alias);
++    
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(param, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias")) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "with-params")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 3:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "with-params")) {
++                    $_ngcc_current_state = 1;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 1:
++            {
++                NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 451);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 4:
++            {
++                withParams = $value;
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(param, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 451:
++            {
++                alias = ((String)$__result__);
++                action0();
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++      NGCCCallParam param;
++    
++}
++
+diff --git a/src/relaxngcc/parser/state/NGCCdefine.java b/src/relaxngcc/parser/state/NGCCdefine.java
+new file mode 100644
+index 0000000..ae66aed
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NGCCdefine.java
+@@ -0,0 +1,280 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NGCCdefine extends NGCCHandler {
++    private String className;
++    private NGCCDefineParam param;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NGCCdefine(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie, String _className) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        this.className = _className;
++        $_ngcc_current_state = 2;
++    }
++
++    public NGCCdefine(ParserRuntime runtime, String _className) {
++        this(null, runtime, runtime, -1, _className);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0)))) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(param, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0)))) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params"))))) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                $_ngcc_current_state = 1;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    $_ngcc_current_state = 1;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(param, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                    NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                        NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                            NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                                NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                NGCCHandler h = new NGCCDefineParamState(this, super._source, $runtime, 459, className);
++                                spawnChildFromText(h, $value);
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 1;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 4:
++            {
++                className = $value;
++                $_ngcc_current_state = 3;
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(param, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 459:
++            {
++                param = ((NGCCDefineParam)$__result__);
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/NGCCwithParams.java b/src/relaxngcc/parser/state/NGCCwithParams.java
+new file mode 100644
+index 0000000..a80d5d2
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NGCCwithParams.java
+@@ -0,0 +1,193 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NGCCwithParams extends NGCCHandler {
++    private String moreParams;
++    private NGCCCallParam param;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NGCCwithParams(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie, NGCCCallParam _param) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        this.param = _param;
++        $_ngcc_current_state = 1;
++    }
++
++    public NGCCwithParams(ParserRuntime runtime, NGCCCallParam _param) {
++        this(null, runtime, runtime, -1, _param);
++    }
++
++    private void action0()throws SAXException {
++        
++          if(param.getWithParams()!=null)
++            // TODO: error report "@cc:with-params is present"
++            ;
++          param.setWithParams(moreParams);
++        
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "withParams")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "withParams")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 3:
++            {
++                moreParams = $value;
++                $_ngcc_current_state = 2;
++                action0();
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 1) || ($_ngcc_current_state == 0)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/NameClassState.java b/src/relaxngcc/parser/state/NameClassState.java
+new file mode 100644
+index 0000000..c166816
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NameClassState.java
+@@ -0,0 +1,304 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NameClassState extends NGCCHandler {
++    private String name;
++    private NameClass child;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NameClassState(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public NameClassState(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        
++          nc = new NsNameClass($runtime, $runtime.getTargetNamespace(),child);
++        
++}
++
++    private void action1()throws SAXException {
++        
++          nc = new AnyNameClass($runtime, child);
++        
++}
++
++    private void action2()throws SAXException {
++        
++          nc = $runtime.parseSimpleName(name,false);
++        
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 14;
++                }
++                else {
++                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName")) {
++                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                        $_ngcc_current_state = 11;
++                    }
++                    else {
++                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName")) {
++                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                            $_ngcc_current_state = 7;
++                        }
++                        else {
++                            if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice")) {
++                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                $_ngcc_current_state = 3;
++                            }
++                            else {
++                                unexpectedEnterElement($__qname);
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "except")) {
++                    NGCCHandler h = new ExceptNameClass(this, super._source, $runtime, 402);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 11:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "except")) {
++                    NGCCHandler h = new ExceptNameClass(this, super._source, $runtime, 406);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice"))))) {
++                    NGCCHandler h = new NameClasses(this, super._source, $runtime, 398);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(nc, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 10:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName")) {
++                    NGCCHandler h = new ExceptNameClass(this, super._source, $runtime, 402);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 11:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName")) {
++                    NGCCHandler h = new ExceptNameClass(this, super._source, $runtime, 406);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 13:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 14:
++            {
++                name = $value;
++                $_ngcc_current_state = 13;
++                action2();
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(nc, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 402:
++            {
++                child = ((NameClass)$__result__);
++                action0();
++                $_ngcc_current_state = 6;
++            }
++            break;
++        case 406:
++            {
++                child = ((NameClass)$__result__);
++                action1();
++                $_ngcc_current_state = 10;
++            }
++            break;
++        case 398:
++            {
++                nc = ((NameClass)$__result__);
++                $_ngcc_current_state = 2;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++      private NameClass nc;
++    
++}
++
+diff --git a/src/relaxngcc/parser/state/NameClasses.java b/src/relaxngcc/parser/state/NameClasses.java
+new file mode 100644
+index 0000000..069787f
+--- /dev/null
++++ b/src/relaxngcc/parser/state/NameClasses.java
+@@ -0,0 +1,168 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class NameClasses extends NGCCHandler {
++    private NameClass child;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public NameClasses(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public NameClasses(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        
++        if(nc==null)  nc=child;
++        else          nc=new ChoiceNameClass(nc,child);
++      
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice"))))) {
++                    NGCCHandler h = new NameClassState(this, super._source, $runtime, 457);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice"))))) {
++                    NGCCHandler h = new NameClassState(this, super._source, $runtime, 458);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    revertToParentFromEnterElement(nc, super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(nc, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 457:
++            {
++                child = ((NameClass)$__result__);
++                action0();
++                $_ngcc_current_state = 0;
++            }
++            break;
++        case 458:
++            {
++                child = ((NameClass)$__result__);
++                action0();
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++      private NameClass nc=null;
++    
++}
++
+diff --git a/src/relaxngcc/parser/state/PatternDefinition.java b/src/relaxngcc/parser/state/PatternDefinition.java
+new file mode 100644
+index 0000000..e4693a4
+--- /dev/null
++++ b/src/relaxngcc/parser/state/PatternDefinition.java
+@@ -0,0 +1,499 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class PatternDefinition extends NGCCHandler {
++    private Scope scope;
++    private String value;
++    private Pattern p;
++    private String combine;
++    private NGCCDefineParam param;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public PatternDefinition(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie, Scope _scope) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        this.scope = _scope;
++        $_ngcc_current_state = 15;
++    }
++
++    public PatternDefinition(ParserRuntime runtime, Scope _scope) {
++        this(null, runtime, runtime, -1, _scope);
++    }
++
++    private void action0()throws SAXException {
++        
++          scope.appendBody(value);
++        
++}
++
++    private void action1()throws SAXException {
++        
++      scope.append(p,combine);
++    
++}
++
++    private void action2()throws SAXException {
++        
++          scope.appendBody(value);
++        
++}
++
++    private void action3()throws SAXException {
++        
++          scope.appendImport(value);
++        
++}
++
++    private void action4()throws SAXException {
++        
++      scope.setParam(param);
++    
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    $_ngcc_current_state = 0;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 14:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 8;
++                }
++                else {
++                    $_ngcc_current_state = 5;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 15:
++            {
++                if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 14;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 0:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 3;
++                }
++                else {
++                    revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 5:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 8;
++                }
++                else {
++                    if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") ||  [...]
++                        NGCCHandler h = new patterns(this, super._source, $runtime, 485);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        case 10:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 12;
++                }
++                else {
++                    $_ngcc_current_state = 6;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 14:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0))))) {
++                    NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                $_ngcc_current_state = 5;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 11:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 6;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 15:
++            {
++                if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 14;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 10:
++            {
++                $_ngcc_current_state = 6;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 5;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 14:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access")))))) {
++                    NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                $_ngcc_current_state = 5;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 15:
++            {
++                if(($__uri == "" && $__local == "combine")) {
++                    $_ngcc_current_state = 17;
++                }
++                else {
++                    $_ngcc_current_state = 14;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 10:
++            {
++                $_ngcc_current_state = 6;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 6:
++            {
++                $_ngcc_current_state = 5;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 16:
++            {
++                if(($__uri == "" && $__local == "combine")) {
++                    $_ngcc_current_state = 14;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 15:
++            {
++                $_ngcc_current_state = 14;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 10:
++            {
++                $_ngcc_current_state = 6;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                $_ngcc_current_state = 0;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                        NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                            NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                                NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                                    NGCCHandler h = new NGCCdefine(this, super._source, $runtime, 497, scope.name);
++                                    spawnChildFromText(h, $value);
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 6:
++            {
++                $_ngcc_current_state = 5;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 3:
++            {
++                value = $value;
++                $_ngcc_current_state = 2;
++                action0();
++            }
++            break;
++        case 12:
++            {
++                value = $value;
++                $_ngcc_current_state = 11;
++                action3();
++            }
++            break;
++        case 8:
++            {
++                value = $value;
++                $_ngcc_current_state = 7;
++                action2();
++            }
++            break;
++        case 15:
++            {
++                if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 14;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 17:
++            {
++                combine = $value;
++                $_ngcc_current_state = 16;
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 10:
++            {
++                $_ngcc_current_state = 6;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 497:
++            {
++                param = ((NGCCDefineParam)$__result__);
++                action4();
++                $_ngcc_current_state = 10;
++            }
++            break;
++        case 485:
++            {
++                p = ((Pattern)$__result__);
++                action1();
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return((($_ngcc_current_state == 1) || ($_ngcc_current_state == 0)));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/PatternState.java b/src/relaxngcc/parser/state/PatternState.java
+new file mode 100644
+index 0000000..c0d8acb
+--- /dev/null
++++ b/src/relaxngcc/parser/state/PatternState.java
+@@ -0,0 +1,2417 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class PatternState extends NGCCHandler {
++    private String typeName;
++    private NameClass name;
++    private String alias;
++    private String value;
++    private String target;
++    private Pattern p;
++    private NGCCCallParam params;
++    private Pattern child;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public PatternState(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 116;
++    }
++
++    public PatternState(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++         p = new JavaBlock($runtime, value); 
++}
++
++    private void action1()throws SAXException {
++        
++          // behave as if there is an implicit ref
++          // between <grammar> and its  parent.
++          p = new RefPattern($runtime, loc, $runtime.grammar, new NGCCCallParam($runtime, null, null) );
++          // get back to the parent context
++          $runtime.grammar = $runtime.grammar.parent;
++        
++}
++
++    private void action2()throws SAXException {
++        
++          $runtime.grammar = new Grammar( $runtime );
++        
++}
++
++    private void action3()throws SAXException {
++        
++          p = new NotAllowedPattern($runtime);
++        
++}
++
++    private void action4()throws SAXException {
++        
++          p = new DataPattern($runtime, loc, $runtime.getDatatype(typeName),alias);
++        
++}
++
++    private void action5()throws SAXException {
++        
++          p = new ValuePattern($runtime, loc,Datatype.NOOP, value, alias);
++        
++}
++
++    private void action6()throws SAXException {
++        
++          p = new DataPattern($runtime, loc, Datatype.NOOP, alias);
++        
++}
++
++    private void action7()throws SAXException {
++        
++          p = new EmptyPattern($runtime);
++        
++}
++
++    private void action8()throws SAXException {
++        
++          // refers to the parent grammar,
++          // instead of the current grammar
++          p = new RefPattern($runtime, loc,
++              $runtime.grammar.parent.getOrCreate($runtime, target),params);
++        
++}
++
++    private void action9()throws SAXException {
++        
++            p = new RefPattern($runtime, loc, $runtime.grammar.getOrCreate($runtime, target), params);
++          
++}
++
++    private void action10()throws SAXException {
++        
++          p = new InterleavePattern($runtime, new DataPattern($runtime, loc, Datatype.NOOP, null ), p );
++        
++}
++
++    private void action11()throws SAXException {
++        
++          p = new ListPattern($runtime, loc, p, alias);
++        
++}
++
++    private void action12()throws SAXException {
++        
++          p = new OneOrMorePattern($runtime, p);
++        
++}
++
++    private void action13()throws SAXException {
++        
++          p = new ChoicePattern($runtime, new OneOrMorePattern($runtime, p), new EmptyPattern($runtime));
++        
++}
++
++    private void action14()throws SAXException {
++        
++          p = new ChoicePattern($runtime, p, new EmptyPattern($runtime));
++        
++}
++
++    private void action15()throws SAXException {
++        
++            if(p==null)  p = child;
++            else         p = new ChoicePattern($runtime, p, child);
++          
++}
++
++    private void action16()throws SAXException {
++        
++            if(p==null)  p = child;
++            else         p = new InterleavePattern($runtime, p, child);
++          
++}
++
++    private void action17()throws SAXException {
++        
++          // if there is no child pattern, assume <text>.
++          if(p==null)
++            p = new DataPattern($runtime, loc, Datatype.NOOP, alias);
++            p = new AttributePattern($runtime, loc, name, p);
++        
++}
++
++    private void action18()throws SAXException {
++        p = new ElementPattern($runtime, loc, name, p);
++}
++
++    private void action19()throws SAXException {
++        
++      loc = $runtime.createLocator();
++    
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 44:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 46, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 29:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 30, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 64:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 66);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 85:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 87);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 80:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 82);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 54:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "withParams")) {
++                    NGCCHandler h = new NGCCwithParams(this, super._source, $runtime, 56, params);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    NGCCHandler h = new NGCCwithParams(this, super._source, $runtime, 56, params);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 69:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 71);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 84:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 86, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 15:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "param")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 21;
++                }
++                else {
++                    if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0)) {
++                        NGCCHandler h = new NGCCalias(this, super._source, $runtime, 14);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        case 106:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 113);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0)) {
++                        NGCCHandler h = new NGCCalias(this, super._source, $runtime, 111);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        case 112:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 118, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 68:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 70, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 75:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 77);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 100:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 104);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 58:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 39:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 41, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 99:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 103, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 116:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    action19();
++                    $_ngcc_current_state = 114;
++                }
++                else {
++                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute")) {
++                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                        action19();
++                        $_ngcc_current_state = 109;
++                    }
++                    else {
++                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "group")) {
++                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                            action19();
++                            $_ngcc_current_state = 100;
++                        }
++                        else {
++                            if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "interleave")) {
++                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                action19();
++                                $_ngcc_current_state = 95;
++                            }
++                            else {
++                                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice")) {
++                                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                    action19();
++                                    $_ngcc_current_state = 90;
++                                }
++                                else {
++                                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "optional")) {
++                                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                        action19();
++                                        $_ngcc_current_state = 85;
++                                    }
++                                    else {
++                                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "zeroOrMore")) {
++                                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                            action19();
++                                            $_ngcc_current_state = 80;
++                                        }
++                                        else {
++                                            if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore")) {
++                                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                action19();
++                                                $_ngcc_current_state = 75;
++                                            }
++                                            else {
++                                                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "list")) {
++                                                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                    action19();
++                                                    $_ngcc_current_state = 70;
++                                                }
++                                                else {
++                                                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed")) {
++                                                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                        action19();
++                                                        $_ngcc_current_state = 64;
++                                                    }
++                                                    else {
++                                                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "ref")) {
++                                                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                            action19();
++                                                            $_ngcc_current_state = 59;
++                                                        }
++                                                        else {
++                                                            if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "parentRef")) {
++                                                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                action19();
++                                                                $_ngcc_current_state = 51;
++                                                            }
++                                                            else {
++                                                                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "empty")) {
++                                                                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                    action19();
++                                                                    action7();
++                                                                    $_ngcc_current_state = 44;
++                                                                }
++                                                                else {
++                                                                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) {
++                                                                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                        action19();
++                                                                        $_ngcc_current_state = 40;
++                                                                    }
++                                                                    else {
++                                                                        if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "value")) {
++                                                                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                            action19();
++                                                                            $_ngcc_current_state = 32;
++                                                                        }
++                                                                        else {
++                                                                            if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data")) {
++                                                                                $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                                action19();
++                                                                                $_ngcc_current_state = 25;
++                                                                            }
++                                                                            else {
++                                                                                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "notAllowed")) {
++                                                                                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                                    action19();
++                                                                                    action3();
++                                                                                    $_ngcc_current_state = 10;
++                                                                                }
++                                                                                else {
++                                                                                    if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "grammar")) {
++                                                                                        $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                                        action19();
++                                                                                        action2();
++                                                                                        $_ngcc_current_state = 7;
++                                                                                    }
++                                                                                    else {
++                                                                                        if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java")) {
++                                                                                            $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                                                                                            action19();
++                                                                                            $_ngcc_current_state = 3;
++                                                                                        }
++                                                                                        else {
++                                                                                            unexpectedEnterElement($__qname);
++                                                                                        }
++                                                                                    }
++                                                                                }
++                                                                            }
++                                                                        }
++                                                                    }
++                                                                }
++                                                            }
++                                                        }
++                                                    }
++                                                }
++                                            }
++                                        }
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 13, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 40:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0)) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 42);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 104:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 108, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 109:
++            {
++                if(((($ai = $runtime.getAttributeIndex("","name"))>=0 && ((((((((((((((((((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "zeroOrMore") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "empty")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "list")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "parentRef")) || ($__uri = [...]
++                    NGCCHandler h = new name(this, super._source, $runtime, 114, true);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 114:
++            {
++                if(((($ai = $runtime.getAttributeIndex("","name"))>=0 && ((((((((((((((((((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "zeroOrMore") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "empty")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "list")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "parentRef")) || ($__uri = [...]
++                    NGCCHandler h = new name(this, super._source, $runtime, 120, false);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 59:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0 || (($ai = $runtime.getAttributeIndex("","name"))>=0 || ($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0))) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 61);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 79:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 81, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 25:
++            {
++                if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 74:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 76, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 63:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 65, p,loc);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 70:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 72);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterElement(p, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 113:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new patterns(this, super._source, $runtime, 119);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 31:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 32);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 94:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 99);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                        NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 97, p,loc);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        case 32:
++            {
++                if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    $_ngcc_current_state = 31;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 90:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 92);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 16:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "param")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 21;
++                }
++                else {
++                    $_ngcc_current_state = 15;
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 50:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 7:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-import") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "div") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java-body") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "define") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "include"))))))) {
++                    NGCCHandler h = new GrammarContent(this, super._source, $runtime, 6);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 51:
++            {
++                if((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0 || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 || ($ai = $runtime.getAttributeIndex("","name"))>=0))) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 53);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 95:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 98);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 89:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 93);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                        NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 91, p,loc);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        case 21:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 105:
++            {
++                action17();
++                $_ngcc_current_state = 104;
++                $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 84:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "optional")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "optional"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 86, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 106:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute")) || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute") || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute"))))) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 111);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 6:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "grammar")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 112:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element")))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 118, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 68:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "list")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "list"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 70, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 58:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 38:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 99:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "group")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "group"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 103, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 43:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "empty")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 40:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")))) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 42);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 13, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 109:
++            {
++                if((($ai = $runtime.getAttributeIndex("","name"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute"))) {
++                    NGCCHandler h = new name(this, super._source, $runtime, 114, true);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 104:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 108, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 2:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 114:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    NGCCHandler h = new name(this, super._source, $runtime, 120, false);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 25:
++            {
++                if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 79:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "zeroOrMore")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "zeroOrMore"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 81, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 17:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "param")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 15;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 16:
++            {
++                $_ngcc_current_state = 15;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 7:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "grammar")) {
++                    NGCCHandler h = new GrammarContent(this, super._source, $runtime, 6);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 28:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "value")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 21:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 111:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 44:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "empty")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "empty"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 46, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 103:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "attribute")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 10:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "notAllowed")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 29:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "value")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "value"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 30, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 13:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 98:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "group")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 54:
++            {
++                NGCCHandler h = new NGCCwithParams(this, super._source, $runtime, 56, params);
++                spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++            }
++            break;
++        case 73:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 15:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data")) || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data"))))) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 14);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 93:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "interleave")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 39:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "text"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 41, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 67:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "list")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 47:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "parentRef")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 88:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 78:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "zeroOrMore")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 59:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "ref")) || ((($ai = $runtime.getAttributeIndex("","name"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "ref")) || (($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "ref"))))) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 61);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 83:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "optional")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 62:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 74:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 76, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 63:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 65, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 70:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 72);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 94:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "interleave")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "interleave"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 97, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 31:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 32);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 55:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "ref")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 54;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 32:
++            {
++                if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    $_ngcc_current_state = 31;
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 50:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 51:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "parentRef")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "parentRef")) || (($ai = $runtime.getAttributeIndex("","name"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "pare [...]
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 53);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 89:
++            {
++                if(((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice")) || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice"))) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 91, p,loc);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 105:
++            {
++                action17();
++                $_ngcc_current_state = 104;
++                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 44:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 46, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 29:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 30, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 54:
++            {
++                NGCCHandler h = new NGCCwithParams(this, super._source, $runtime, 56, params);
++                spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++            }
++            break;
++        case 84:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 86, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 15:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias"))) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 14);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 106:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias"))) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 111);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 112:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 118, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 68:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 70, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 58:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 57;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 39:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 41, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 99:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 103, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 14:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 13, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 40:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias"))) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 42);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 104:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 108, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 109:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    NGCCHandler h = new name(this, super._source, $runtime, 114, true);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 114:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    NGCCHandler h = new name(this, super._source, $runtime, 120, false);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 59:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "with-params") || (($__uri == "" && $__local == "name") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias")))) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 61);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 25:
++            {
++                if(($__uri == "" && $__local == "type")) {
++                    $_ngcc_current_state = 24;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 79:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 81, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 74:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 76, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 63:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 65, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 70:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias")) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 72);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromEnterAttribute(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 94:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 97, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 31:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias")) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 32);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 32:
++            {
++                if(($__uri == "" && $__local == "type")) {
++                    $_ngcc_current_state = 34;
++                }
++                else {
++                    $_ngcc_current_state = 31;
++                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++                }
++            }
++            break;
++        case 50:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 49;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 16:
++            {
++                $_ngcc_current_state = 15;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 51:
++            {
++                if((($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "with-params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "alias") || ($__uri == "" && $__local == "name")))) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 53);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 89:
++            {
++                if(($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class")) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 91, p,loc);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 21:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 20;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        case 105:
++            {
++                action17();
++                $_ngcc_current_state = 104;
++                $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 33:
++            {
++                if(($__uri == "" && $__local == "type")) {
++                    $_ngcc_current_state = 31;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 23:
++            {
++                if(($__uri == "" && $__local == "type")) {
++                    $_ngcc_current_state = 16;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 19:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 18;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 48:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 47;
++                    action8();
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 32:
++            {
++                $_ngcc_current_state = 31;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 16:
++            {
++                $_ngcc_current_state = 15;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 54:
++            {
++                NGCCHandler h = new NGCCwithParams(this, super._source, $runtime, 56, params);
++                spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
++            }
++            break;
++        case 56:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 55;
++                    action9();
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        case 105:
++            {
++                action17();
++                $_ngcc_current_state = 104;
++                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 44:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 46, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 29:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 30, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 54:
++            {
++                NGCCHandler h = new NGCCwithParams(this, super._source, $runtime, 56, params);
++                spawnChildFromText(h, $value);
++            }
++            break;
++        case 84:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 86, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 15:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 14);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                        NGCCHandler h = new NGCCalias(this, super._source, $runtime, 14);
++                        spawnChildFromText(h, $value);
++                    }
++                }
++            }
++            break;
++        case 24:
++            {
++                typeName = $value;
++                $_ngcc_current_state = 23;
++            }
++            break;
++        case 106:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 111);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                        NGCCHandler h = new NGCCalias(this, super._source, $runtime, 111);
++                        spawnChildFromText(h, $value);
++                    }
++                }
++            }
++            break;
++        case 30:
++            {
++                value = $value;
++                $_ngcc_current_state = 29;
++                action5();
++            }
++            break;
++        case 112:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 118, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 68:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 70, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 20:
++            {
++                $_ngcc_current_state = 19;
++            }
++            break;
++        case 58:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 39:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 41, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 49:
++            {
++                target = $value;
++                $_ngcc_current_state = 48;
++            }
++            break;
++        case 99:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 103, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 18:
++            {
++                $_ngcc_current_state = 17;
++            }
++            break;
++        case 14:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 13, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 40:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 42);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                        NGCCHandler h = new NGCCalias(this, super._source, $runtime, 42);
++                        spawnChildFromText(h, $value);
++                    }
++                }
++            }
++            break;
++        case 104:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 108, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 109:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    NGCCHandler h = new name(this, super._source, $runtime, 114, true);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 34:
++            {
++                if($value.equals("token")) {
++                    $_ngcc_current_state = 33;
++                }
++            }
++            break;
++        case 114:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    NGCCHandler h = new name(this, super._source, $runtime, 120, false);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 59:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 61);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                        NGCCHandler h = new NGCCcall(this, super._source, $runtime, 61);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0) {
++                            NGCCHandler h = new NGCCcall(this, super._source, $runtime, 61);
++                            spawnChildFromText(h, $value);
++                        }
++                    }
++                }
++            }
++            break;
++        case 57:
++            {
++                target = $value;
++                $_ngcc_current_state = 56;
++            }
++            break;
++        case 25:
++            {
++                if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 79:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 81, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 74:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 76, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 63:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 65, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 70:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 72);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromText(p, super._cookie, $value);
++            }
++            break;
++        case 31:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 32);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    NGCCHandler h = new NGCCalias(this, super._source, $runtime, 32);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 94:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 97, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 32:
++            {
++                if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++                else {
++                    $_ngcc_current_state = 31;
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 16:
++            {
++                $_ngcc_current_state = 15;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        case 3:
++            {
++                value = $value;
++                $_ngcc_current_state = 2;
++                action0();
++            }
++            break;
++        case 50:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 51:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    NGCCHandler h = new NGCCcall(this, super._source, $runtime, 53);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","alias"))>=0) {
++                        NGCCHandler h = new NGCCcall(this, super._source, $runtime, 53);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","with-params"))>=0) {
++                            NGCCHandler h = new NGCCcall(this, super._source, $runtime, 53);
++                            spawnChildFromText(h, $value);
++                        }
++                    }
++                }
++            }
++            break;
++        case 89:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                    NGCCHandler h = new NGCCLocalClass(this, super._source, $runtime, 91, p,loc);
++                    spawnChildFromText(h, $value);
++                }
++            }
++            break;
++        case 21:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 105:
++            {
++                action17();
++                $_ngcc_current_state = 104;
++                $runtime.sendText(super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 66:
++            {
++                p = ((Pattern)$__result__);
++                action10();
++                $_ngcc_current_state = 63;
++            }
++            break;
++        case 82:
++            {
++                p = ((Pattern)$__result__);
++                action13();
++                $_ngcc_current_state = 79;
++            }
++            break;
++        case 103:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 98;
++            }
++            break;
++        case 42:
++            {
++                alias = ((String)$__result__);
++                action6();
++                $_ngcc_current_state = 39;
++            }
++            break;
++        case 13:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 13;
++            }
++            break;
++        case 114:
++            {
++                name = ((NameClass)$__result__);
++                $_ngcc_current_state = 106;
++            }
++            break;
++        case 108:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 103;
++            }
++            break;
++        case 92:
++            {
++                child = ((Pattern)$__result__);
++                action15();
++                $_ngcc_current_state = 89;
++            }
++            break;
++        case 6:
++            {
++                action1();
++                $_ngcc_current_state = 6;
++            }
++            break;
++        case 87:
++            {
++                p = ((Pattern)$__result__);
++                action14();
++                $_ngcc_current_state = 84;
++            }
++            break;
++        case 56:
++            {
++                $_ngcc_current_state = 0;
++            }
++            break;
++        case 32:
++            {
++                alias = ((String)$__result__);
++                $_ngcc_current_state = 30;
++            }
++            break;
++        case 99:
++            {
++                child = ((Pattern)$__result__);
++                action16();
++                $_ngcc_current_state = 94;
++            }
++            break;
++        case 97:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 93;
++            }
++            break;
++        case 98:
++            {
++                child = ((Pattern)$__result__);
++                action16();
++                $_ngcc_current_state = 94;
++            }
++            break;
++        case 71:
++            {
++                p = ((Pattern)$__result__);
++                action11();
++                $_ngcc_current_state = 68;
++            }
++            break;
++        case 86:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 83;
++            }
++            break;
++        case 113:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 105;
++            }
++            break;
++        case 111:
++            {
++                alias = ((String)$__result__);
++                $_ngcc_current_state = 105;
++            }
++            break;
++        case 118:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 111;
++            }
++            break;
++        case 70:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 67;
++            }
++            break;
++        case 77:
++            {
++                p = ((Pattern)$__result__);
++                action12();
++                $_ngcc_current_state = 74;
++            }
++            break;
++        case 104:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 99;
++            }
++            break;
++        case 120:
++            {
++                name = ((NameClass)$__result__);
++                $_ngcc_current_state = 113;
++            }
++            break;
++        case 81:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 78;
++            }
++            break;
++        case 119:
++            {
++                p = ((Pattern)$__result__);
++                action18();
++                $_ngcc_current_state = 112;
++            }
++            break;
++        case 46:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 43;
++            }
++            break;
++        case 30:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 28;
++            }
++            break;
++        case 14:
++            {
++                alias = ((String)$__result__);
++                action4();
++                $_ngcc_current_state = 14;
++            }
++            break;
++        case 41:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 38;
++            }
++            break;
++        case 61:
++            {
++                params = ((NGCCCallParam)$__result__);
++                $_ngcc_current_state = 58;
++            }
++            break;
++        case 76:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 73;
++            }
++            break;
++        case 65:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 62;
++            }
++            break;
++        case 72:
++            {
++                alias = ((String)$__result__);
++                $_ngcc_current_state = 69;
++            }
++            break;
++        case 53:
++            {
++                params = ((NGCCCallParam)$__result__);
++                $_ngcc_current_state = 50;
++            }
++            break;
++        case 93:
++            {
++                child = ((Pattern)$__result__);
++                action15();
++                $_ngcc_current_state = 89;
++            }
++            break;
++        case 91:
++            {
++                p = ((Pattern)$__result__);
++                $_ngcc_current_state = 88;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++      private Locator loc;
++    
++}
++
+diff --git a/src/relaxngcc/parser/state/Start.java b/src/relaxngcc/parser/state/Start.java
+new file mode 100644
+index 0000000..4e8e037
+--- /dev/null
++++ b/src/relaxngcc/parser/state/Start.java
+@@ -0,0 +1,147 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++public class Start extends NGCCHandler {
++    private Pattern result;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public Start(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public Start(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 1:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 470);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 470:
++            {
++                result = ((Pattern)$__result__);
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++      public Pattern getResult() { return result; }
++    
++}
++
+diff --git a/src/relaxngcc/parser/state/StartElement.java b/src/relaxngcc/parser/state/StartElement.java
+new file mode 100644
+index 0000000..ed4d46f
+--- /dev/null
++++ b/src/relaxngcc/parser/state/StartElement.java
+@@ -0,0 +1,228 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class StartElement extends NGCCHandler {
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public StartElement(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 3;
++    }
++
++    public StartElement(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 2:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
++                    $_ngcc_current_state = 2;
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 1:
++            {
++                if(($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) {
++                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        case 0:
++            {
++                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if(((($ai = $runtime.getAttributeIndex("","combine"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start")) || ((($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0 && ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "start" [...]
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                    spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 2:
++            {
++                if((($__uri == "" && $__local == "combine") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-value") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "params") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "class") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "return-type") || ($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "access"))))))) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                    spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(this, super._cookie, $value);
++            }
++            break;
++        case 2:
++            {
++                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","access"))>=0) {
++                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                    spawnChildFromText(h, $value);
++                }
++                else {
++                    if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-type"))>=0) {
++                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                        spawnChildFromText(h, $value);
++                    }
++                    else {
++                        if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","class"))>=0) {
++                            NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                            spawnChildFromText(h, $value);
++                        }
++                        else {
++                            if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","params"))>=0) {
++                                NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                                spawnChildFromText(h, $value);
++                            }
++                            else {
++                                if(($ai = $runtime.getAttributeIndex("http://www.xml.gr.jp/xmlns/relaxngcc","return-value"))>=0) {
++                                    NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                                    spawnChildFromText(h, $value);
++                                }
++                                else {
++                                    if(($ai = $runtime.getAttributeIndex("","combine"))>=0) {
++                                        NGCCHandler h = new PatternDefinition(this, super._source, $runtime, 472, $runtime.grammar);
++                                        spawnChildFromText(h, $value);
++                                    }
++                                }
++                            }
++                        }
++                    }
++                }
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 472:
++            {
++                $_ngcc_current_state = 1;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/name.java b/src/relaxngcc/parser/state/name.java
+new file mode 100644
+index 0000000..de4dff2
+--- /dev/null
++++ b/src/relaxngcc/parser/state/name.java
+@@ -0,0 +1,208 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class name extends NGCCHandler {
++    private String name;
++    private boolean attributeMode;
++    private NameClass nc;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public name(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie, boolean _attributeMode) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        this.attributeMode = _attributeMode;
++        $_ngcc_current_state = 1;
++    }
++
++    public name(ParserRuntime runtime, boolean _attributeMode) {
++        this(null, runtime, runtime, -1, _attributeMode);
++    }
++
++    private void action0()throws SAXException {
++        nc = $runtime.parseSimpleName(name,attributeMode);
++        
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterElement(nc, super._cookie, $__uri, $__local, $__qname, $attrs);
++            }
++            break;
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "name") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "nsName") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "anyName") || ($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice"))))) {
++                        NGCCHandler h = new NameClassState(this, super._source, $runtime, 504);
++                        spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                    }
++                    else {
++                        unexpectedEnterElement($__qname);
++                    }
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        int $ai;
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
++                }
++                else {
++                    unexpectedLeaveElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 1:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 4;
++                }
++                else {
++                    unexpectedEnterAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(nc, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        case 3:
++            {
++                if(($__uri == "" && $__local == "name")) {
++                    $_ngcc_current_state = 0;
++                }
++                else {
++                    unexpectedLeaveAttribute($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        int $ai;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(nc, super._cookie, $value);
++            }
++            break;
++        case 1:
++            {
++                if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
++                    $runtime.consumeAttribute($ai);
++                    $runtime.sendText(super._cookie, $value);
++                }
++            }
++            break;
++        case 4:
++            {
++                name = $value;
++                $_ngcc_current_state = 3;
++                action0();
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 504:
++            {
++                nc = ((NameClass)$__result__);
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++
++}
++
+diff --git a/src/relaxngcc/parser/state/patterns.java b/src/relaxngcc/parser/state/patterns.java
+new file mode 100644
+index 0000000..c2d7366
+--- /dev/null
++++ b/src/relaxngcc/parser/state/patterns.java
+@@ -0,0 +1,168 @@
++/* this file is generated by RelaxNGCC */
++package relaxngcc.parser.state;
++import org.xml.sax.SAXException;
++import org.xml.sax.Attributes;
++import relaxngcc.parser.ParserRuntime;
++
++    import relaxngcc.grammar.*;
++    import relaxngcc.datatype.Datatype;
++    import org.xml.sax.Locator;
++  
++
++
++class patterns extends NGCCHandler {
++    private Pattern child;
++    protected final ParserRuntime $runtime;
++    private int $_ngcc_current_state;
++    protected String $uri;
++    protected String $localName;
++    protected String $qname;
++
++    public final NGCCRuntime getRuntime() {
++        return($runtime);
++    }
++
++    public patterns(NGCCHandler parent, NGCCEventSource source, ParserRuntime runtime, int cookie) {
++        super(source, parent, cookie);
++        $runtime = runtime;
++        $_ngcc_current_state = 1;
++    }
++
++    public patterns(ParserRuntime runtime) {
++        this(null, runtime, runtime, -1);
++    }
++
++    private void action0()throws SAXException {
++        
++        if(p==null)  p = child;
++        else         p = new GroupPattern($runtime, p, child);
++      
++}
++
++    public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 478);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    revertToParentFromEnterElement(p, super._cookie, $__uri, $__local, $__qname, $attrs);
++                }
++            }
++            break;
++        case 1:
++            {
++                if((($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "data") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "element") || (($__uri == "http://www.xml.gr.jp/xmlns/relaxngcc" && $__local == "java") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "mixed") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "choice") || (($__uri == "http://relaxng.org/ns/structure/1.0" && $__local == "oneOrMore") || (($_ [...]
++                    NGCCHandler h = new PatternState(this, super._source, $runtime, 477);
++                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
++                }
++                else {
++                    unexpectedEnterElement($__qname);
++                }
++            }
++            break;
++        default:
++            {
++                unexpectedEnterElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveElement(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveElement($__qname);
++            }
++            break;
++        }
++    }
++
++    public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromEnterAttribute(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedEnterAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
++        $uri = $__uri;
++        $localName = $__local;
++        $qname = $__qname;
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromLeaveAttribute(p, super._cookie, $__uri, $__local, $__qname);
++            }
++            break;
++        default:
++            {
++                unexpectedLeaveAttribute($__qname);
++            }
++            break;
++        }
++    }
++
++    public void text(String $value) throws SAXException {
++        switch($_ngcc_current_state) {
++        case 0:
++            {
++                revertToParentFromText(p, super._cookie, $value);
++            }
++            break;
++        }
++    }
++
++    public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
++        switch($__cookie__) {
++        case 478:
++            {
++                child = ((Pattern)$__result__);
++                action0();
++                $_ngcc_current_state = 0;
++            }
++            break;
++        case 477:
++            {
++                child = ((Pattern)$__result__);
++                action0();
++                $_ngcc_current_state = 0;
++            }
++            break;
++        }
++    }
++
++    public boolean accepted() {
++        return(($_ngcc_current_state == 0));
++    }
++
++    
++      private Pattern p=null;
++    
++}
++
diff --git a/debian/patches/series b/debian/patches/series
index 8eade6e..6d63606 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 add-build-xml.diff
+bootstrap-files.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/relaxngcc.git



More information about the pkg-java-commits mailing list