OSDN Git Service

git-svn-id: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core@3391 ae02f08e...
authorleo <leo@ae02f08e-27ec-0310-ae8c-8ba02fe2eafd>
Thu, 2 Jul 2009 00:08:59 +0000 (00:08 +0000)
committerleo <leo@ae02f08e-27ec-0310-ae8c-8ba02fe2eafd>
Thu, 2 Jul 2009 00:08:59 +0000 (00:08 +0000)
src/main/java/org/xerial/lens/ObjectLens.java
src/main/java/org/xerial/silk/schema/impl/SilkSchema.tokens [new file with mode: 0644]
src/main/java/org/xerial/silk/schema/impl/SilkSchemaLexer.java [new file with mode: 0644]
src/main/java/org/xerial/silk/schema/impl/SilkSchemaParser.java [new file with mode: 0644]

index 8b443b5..309b5e0 100644 (file)
@@ -227,10 +227,8 @@ public class ObjectLens
                     }\r
 \r
                     // relation adder\r
-                    // TODO do not canonicalize\r
-                    String paramName = pickPropertyName(methodName);\r
 \r
-                    Pair<String, String> relName = pickRelationName(paramName);\r
+                    Pair<String, String> relName = pickRelationName(pickPropertyName(methodName, false));\r
                     if (relName == null)\r
                     {\r
                         // infer relation node names\r
@@ -275,10 +273,8 @@ public class ObjectLens
                 if (TypeInfo.isCollection(eachMethod.getDeclaringClass()))\r
                     continue;\r
 \r
-                String paramName = pickPropertyName(methodName);\r
-\r
                 // relation adder\r
-                Pair<String, String> relName = pickRelationName(paramName);\r
+                Pair<String, String> relName = pickRelationName(pickPropertyName(methodName, false));\r
                 if (relName == null)\r
                 {\r
                     // infer relation node names\r
diff --git a/src/main/java/org/xerial/silk/schema/impl/SilkSchema.tokens b/src/main/java/org/xerial/silk/schema/impl/SilkSchema.tokens
new file mode 100644 (file)
index 0000000..8e2bfe6
--- /dev/null
@@ -0,0 +1,23 @@
+RBrace=21\r
+Class=26\r
+LBracket=22\r
+Digit=6\r
+Frac=17\r
+HexDigit=8\r
+Exp=18\r
+RParen=25\r
+UnicodeChar=9\r
+StringChar=11\r
+LParen=24\r
+String=13\r
+Letter=7\r
+Comma=15\r
+Schema=4\r
+EscapeSequence=10\r
+StringChar_s=12\r
+Integer=16\r
+LBrace=20\r
+Double=19\r
+RBracket=23\r
+WhiteSpace=5\r
+Colon=14\r
diff --git a/src/main/java/org/xerial/silk/schema/impl/SilkSchemaLexer.java b/src/main/java/org/xerial/silk/schema/impl/SilkSchemaLexer.java
new file mode 100644 (file)
index 0000000..8bff6c1
--- /dev/null
@@ -0,0 +1,1095 @@
+// $ANTLR 3.1.1 d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g 2009-07-01 18:57:06\r
+\r
+/*--------------------------------------------------------------------------\r
+ *  Copyright 2009 Taro L. Saito\r
+ *\r
+ *  Licensed under the Apache License, Version 2.0 (the "License");\r
+ *  you may not use this file except in compliance with the License.\r
+ *  You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *  Unless required by applicable law or agreed to in writing, software\r
+ *  distributed under the License is distributed on an "AS IS" BASIS,\r
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *  See the License for the specific language governing permissions and\r
+ *  limitations under the License.\r
+ *--------------------------------------------------------------------------*/\r
+//--------------------------------------\r
+// XerialJ\r
+//\r
+// SilkSchemaLexer.java\r
+// Since: Jun 28, 2009 1:00:02 PM\r
+//\r
+//--------------------------------------\r
+\r
+package org.xerial.silk.schema.impl;\r
+\r
+\r
+\r
+import org.antlr.runtime.*;\r
+import java.util.Stack;\r
+import java.util.List;\r
+import java.util.ArrayList;\r
+\r
+public class SilkSchemaLexer extends Lexer {\r
+    public static final int RBrace=21;\r
+    public static final int LBracket=22;\r
+    public static final int Class=26;\r
+    public static final int Digit=6;\r
+    public static final int Frac=17;\r
+    public static final int HexDigit=8;\r
+    public static final int Exp=18;\r
+    public static final int RParen=25;\r
+    public static final int UnicodeChar=9;\r
+    public static final int StringChar=11;\r
+    public static final int LParen=24;\r
+    public static final int String=13;\r
+    public static final int Letter=7;\r
+    public static final int Comma=15;\r
+    public static final int Schema=4;\r
+    public static final int EscapeSequence=10;\r
+    public static final int EOF=-1;\r
+    public static final int StringChar_s=12;\r
+    public static final int Integer=16;\r
+    public static final int Double=19;\r
+    public static final int LBrace=20;\r
+    public static final int RBracket=23;\r
+    public static final int WhiteSpace=5;\r
+    public static final int Colon=14;\r
+\r
+\r
+      \r
+\r
+\r
+    // delegates\r
+    // delegators\r
+\r
+    public SilkSchemaLexer() {;} \r
+    public SilkSchemaLexer(CharStream input) {\r
+        this(input, new RecognizerSharedState());\r
+    }\r
+    public SilkSchemaLexer(CharStream input, RecognizerSharedState state) {\r
+        super(input,state);\r
+\r
+    }\r
+    public String getGrammarFileName() { return "d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g"; }\r
+\r
+    // $ANTLR start "WhiteSpace"\r
+    public final void mWhiteSpace() throws RecognitionException {\r
+        try {\r
+            int _type = WhiteSpace;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:100:11: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:100:13: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )\r
+            {\r
+            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+             _channel=HIDDEN; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "WhiteSpace"\r
+\r
+    // $ANTLR start "Digit"\r
+    public final void mDigit() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:102:15: ( '0' .. '9' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:102:17: '0' .. '9'\r
+            {\r
+            matchRange('0','9'); \r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Digit"\r
+\r
+    // $ANTLR start "Letter"\r
+    public final void mLetter() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:103:16: ( 'A' .. 'F' | 'a' .. 'f' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:\r
+            {\r
+            if ( (input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Letter"\r
+\r
+    // $ANTLR start "HexDigit"\r
+    public final void mHexDigit() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:104:18: ( Digit | Letter )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:\r
+            {\r
+            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "HexDigit"\r
+\r
+    // $ANTLR start "UnicodeChar"\r
+    public final void mUnicodeChar() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:105:21: (~ ( '\"' | '\\\\' ) )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:105:23: ~ ( '\"' | '\\\\' )\r
+            {\r
+            if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "UnicodeChar"\r
+\r
+    // $ANTLR start "EscapeSequence"\r
+    public final void mEscapeSequence() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:3: ( '\\\\' ( '\\\"' | '\\\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit ) )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:5: '\\\\' ( '\\\"' | '\\\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit )\r
+            {\r
+            match('\\'); \r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:10: ( '\\\"' | '\\\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit )\r
+            int alt1=9;\r
+            switch ( input.LA(1) ) {\r
+            case '\"':\r
+                {\r
+                alt1=1;\r
+                }\r
+                break;\r
+            case '\\':\r
+                {\r
+                alt1=2;\r
+                }\r
+                break;\r
+            case '/':\r
+                {\r
+                alt1=3;\r
+                }\r
+                break;\r
+            case 'b':\r
+                {\r
+                alt1=4;\r
+                }\r
+                break;\r
+            case 'f':\r
+                {\r
+                alt1=5;\r
+                }\r
+                break;\r
+            case 'n':\r
+                {\r
+                alt1=6;\r
+                }\r
+                break;\r
+            case 'r':\r
+                {\r
+                alt1=7;\r
+                }\r
+                break;\r
+            case 't':\r
+                {\r
+                alt1=8;\r
+                }\r
+                break;\r
+            case 'u':\r
+                {\r
+                alt1=9;\r
+                }\r
+                break;\r
+            default:\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 1, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+\r
+            switch (alt1) {\r
+                case 1 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:11: '\\\"'\r
+                    {\r
+                    match('\"'); \r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:18: '\\\\'\r
+                    {\r
+                    match('\\'); \r
+\r
+                    }\r
+                    break;\r
+                case 3 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:25: '/'\r
+                    {\r
+                    match('/'); \r
+\r
+                    }\r
+                    break;\r
+                case 4 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:31: 'b'\r
+                    {\r
+                    match('b'); \r
+\r
+                    }\r
+                    break;\r
+                case 5 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:37: 'f'\r
+                    {\r
+                    match('f'); \r
+\r
+                    }\r
+                    break;\r
+                case 6 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:43: 'n'\r
+                    {\r
+                    match('n'); \r
+\r
+                    }\r
+                    break;\r
+                case 7 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:49: 'r'\r
+                    {\r
+                    match('r'); \r
+\r
+                    }\r
+                    break;\r
+                case 8 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:55: 't'\r
+                    {\r
+                    match('t'); \r
+\r
+                    }\r
+                    break;\r
+                case 9 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:107:61: 'u' HexDigit HexDigit HexDigit HexDigit\r
+                    {\r
+                    match('u'); \r
+                    mHexDigit(); \r
+                    mHexDigit(); \r
+                    mHexDigit(); \r
+                    mHexDigit(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "EscapeSequence"\r
+\r
+    // $ANTLR start "StringChar"\r
+    public final void mStringChar() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:110:21: ( UnicodeChar | EscapeSequence )\r
+            int alt2=2;\r
+            int LA2_0 = input.LA(1);\r
+\r
+            if ( ((LA2_0>='\u0000' && LA2_0<='!')||(LA2_0>='#' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) {\r
+                alt2=1;\r
+            }\r
+            else if ( (LA2_0=='\\') ) {\r
+                alt2=2;\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 2, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt2) {\r
+                case 1 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:110:24: UnicodeChar\r
+                    {\r
+                    mUnicodeChar(); \r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:110:38: EscapeSequence\r
+                    {\r
+                    mEscapeSequence(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "StringChar"\r
+\r
+    // $ANTLR start "StringChar_s"\r
+    public final void mStringChar_s() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:111:22: ( ( StringChar )* )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:111:24: ( StringChar )*\r
+            {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:111:24: ( StringChar )*\r
+            loop3:\r
+            do {\r
+                int alt3=2;\r
+                int LA3_0 = input.LA(1);\r
+\r
+                if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='\uFFFF')) ) {\r
+                    alt3=1;\r
+                }\r
+\r
+\r
+                switch (alt3) {\r
+               case 1 :\r
+                   // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:111:24: StringChar\r
+                   {\r
+                   mStringChar(); \r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   break loop3;\r
+                }\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "StringChar_s"\r
+\r
+    // $ANTLR start "String"\r
+    public final void mString() throws RecognitionException {\r
+        try {\r
+            int _type = String;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            Token s=null;\r
+\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:113:7: ( '\"' s= StringChar_s '\"' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:113:9: '\"' s= StringChar_s '\"'\r
+            {\r
+            match('\"'); \r
+            int sStart216 = getCharIndex();\r
+            mStringChar_s(); \r
+            s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart216, getCharIndex()-1);\r
+            match('\"'); \r
+             setText((s!=null?s.getText():null)); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "String"\r
+\r
+    // $ANTLR start "Colon"\r
+    public final void mColon() throws RecognitionException {\r
+        try {\r
+            int _type = Colon;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:116:6: ( ':' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:116:8: ':'\r
+            {\r
+            match(':'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Colon"\r
+\r
+    // $ANTLR start "Comma"\r
+    public final void mComma() throws RecognitionException {\r
+        try {\r
+            int _type = Comma;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:117:6: ( ',' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:117:8: ','\r
+            {\r
+            match(','); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Comma"\r
+\r
+    // $ANTLR start "Integer"\r
+    public final void mInteger() throws RecognitionException {\r
+        try {\r
+            int _type = Integer;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:8: ( ( '-' )? ( '0' | '1' .. '9' ( Digit )* ) )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:10: ( '-' )? ( '0' | '1' .. '9' ( Digit )* )\r
+            {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:10: ( '-' )?\r
+            int alt4=2;\r
+            int LA4_0 = input.LA(1);\r
+\r
+            if ( (LA4_0=='-') ) {\r
+                alt4=1;\r
+            }\r
+            switch (alt4) {\r
+                case 1 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:10: '-'\r
+                    {\r
+                    match('-'); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:15: ( '0' | '1' .. '9' ( Digit )* )\r
+            int alt6=2;\r
+            int LA6_0 = input.LA(1);\r
+\r
+            if ( (LA6_0=='0') ) {\r
+                alt6=1;\r
+            }\r
+            else if ( ((LA6_0>='1' && LA6_0<='9')) ) {\r
+                alt6=2;\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 6, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt6) {\r
+                case 1 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:16: '0'\r
+                    {\r
+                    match('0'); \r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:22: '1' .. '9' ( Digit )*\r
+                    {\r
+                    matchRange('1','9'); \r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:31: ( Digit )*\r
+                    loop5:\r
+                    do {\r
+                        int alt5=2;\r
+                        int LA5_0 = input.LA(1);\r
+\r
+                        if ( ((LA5_0>='0' && LA5_0<='9')) ) {\r
+                            alt5=1;\r
+                        }\r
+\r
+\r
+                        switch (alt5) {\r
+                       case 1 :\r
+                           // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:118:31: Digit\r
+                           {\r
+                           mDigit(); \r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop5;\r
+                        }\r
+                    } while (true);\r
+\r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Integer"\r
+\r
+    // $ANTLR start "Frac"\r
+    public final void mFrac() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:119:14: ( '.' ( Digit )+ )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:119:16: '.' ( Digit )+\r
+            {\r
+            match('.'); \r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:119:20: ( Digit )+\r
+            int cnt7=0;\r
+            loop7:\r
+            do {\r
+                int alt7=2;\r
+                int LA7_0 = input.LA(1);\r
+\r
+                if ( ((LA7_0>='0' && LA7_0<='9')) ) {\r
+                    alt7=1;\r
+                }\r
+\r
+\r
+                switch (alt7) {\r
+               case 1 :\r
+                   // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:119:20: Digit\r
+                   {\r
+                   mDigit(); \r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   if ( cnt7 >= 1 ) break loop7;\r
+                        EarlyExitException eee =\r
+                            new EarlyExitException(7, input);\r
+                        throw eee;\r
+                }\r
+                cnt7++;\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Frac"\r
+\r
+    // $ANTLR start "Exp"\r
+    public final void mExp() throws RecognitionException {\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:120:13: ( ( 'e' | 'E' ) ( '+' | '-' )? ( Digit )+ )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:120:15: ( 'e' | 'E' ) ( '+' | '-' )? ( Digit )+\r
+            {\r
+            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:120:27: ( '+' | '-' )?\r
+            int alt8=2;\r
+            int LA8_0 = input.LA(1);\r
+\r
+            if ( (LA8_0=='+'||LA8_0=='-') ) {\r
+                alt8=1;\r
+            }\r
+            switch (alt8) {\r
+                case 1 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:\r
+                    {\r
+                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {\r
+                        input.consume();\r
+\r
+                    }\r
+                    else {\r
+                        MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                        recover(mse);\r
+                        throw mse;}\r
+\r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:120:40: ( Digit )+\r
+            int cnt9=0;\r
+            loop9:\r
+            do {\r
+                int alt9=2;\r
+                int LA9_0 = input.LA(1);\r
+\r
+                if ( ((LA9_0>='0' && LA9_0<='9')) ) {\r
+                    alt9=1;\r
+                }\r
+\r
+\r
+                switch (alt9) {\r
+               case 1 :\r
+                   // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:120:40: Digit\r
+                   {\r
+                   mDigit(); \r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   if ( cnt9 >= 1 ) break loop9;\r
+                        EarlyExitException eee =\r
+                            new EarlyExitException(9, input);\r
+                        throw eee;\r
+                }\r
+                cnt9++;\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Exp"\r
+\r
+    // $ANTLR start "Double"\r
+    public final void mDouble() throws RecognitionException {\r
+        try {\r
+            int _type = Double;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:7: ( Integer ( Frac ( Exp )? | Exp ) )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:9: Integer ( Frac ( Exp )? | Exp )\r
+            {\r
+            mInteger(); \r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:17: ( Frac ( Exp )? | Exp )\r
+            int alt11=2;\r
+            int LA11_0 = input.LA(1);\r
+\r
+            if ( (LA11_0=='.') ) {\r
+                alt11=1;\r
+            }\r
+            else if ( (LA11_0=='E'||LA11_0=='e') ) {\r
+                alt11=2;\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 11, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt11) {\r
+                case 1 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:18: Frac ( Exp )?\r
+                    {\r
+                    mFrac(); \r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:23: ( Exp )?\r
+                    int alt10=2;\r
+                    int LA10_0 = input.LA(1);\r
+\r
+                    if ( (LA10_0=='E'||LA10_0=='e') ) {\r
+                        alt10=1;\r
+                    }\r
+                    switch (alt10) {\r
+                        case 1 :\r
+                            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:23: Exp\r
+                            {\r
+                            mExp(); \r
+\r
+                            }\r
+                            break;\r
+\r
+                    }\r
+\r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:121:30: Exp\r
+                    {\r
+                    mExp(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Double"\r
+\r
+    // $ANTLR start "LBrace"\r
+    public final void mLBrace() throws RecognitionException {\r
+        try {\r
+            int _type = LBrace;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:123:7: ( '{' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:123:9: '{'\r
+            {\r
+            match('{'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "LBrace"\r
+\r
+    // $ANTLR start "RBrace"\r
+    public final void mRBrace() throws RecognitionException {\r
+        try {\r
+            int _type = RBrace;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:124:7: ( '}' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:124:9: '}'\r
+            {\r
+            match('}'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RBrace"\r
+\r
+    // $ANTLR start "LBracket"\r
+    public final void mLBracket() throws RecognitionException {\r
+        try {\r
+            int _type = LBracket;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:125:9: ( '[' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:125:11: '['\r
+            {\r
+            match('['); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "LBracket"\r
+\r
+    // $ANTLR start "RBracket"\r
+    public final void mRBracket() throws RecognitionException {\r
+        try {\r
+            int _type = RBracket;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:126:9: ( ']' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:126:11: ']'\r
+            {\r
+            match(']'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RBracket"\r
+\r
+    // $ANTLR start "LParen"\r
+    public final void mLParen() throws RecognitionException {\r
+        try {\r
+            int _type = LParen;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:128:7: ( '(' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:128:9: '('\r
+            {\r
+            match('('); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "LParen"\r
+\r
+    // $ANTLR start "RParen"\r
+    public final void mRParen() throws RecognitionException {\r
+        try {\r
+            int _type = RParen;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:129:7: ( ')' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:129:9: ')'\r
+            {\r
+            match(')'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RParen"\r
+\r
+    // $ANTLR start "Class"\r
+    public final void mClass() throws RecognitionException {\r
+        try {\r
+            int _type = Class;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:131:6: ( 'class' )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:131:8: 'class'\r
+            {\r
+            match("class"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "Class"\r
+\r
+    public void mTokens() throws RecognitionException {\r
+        // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:8: ( WhiteSpace | String | Colon | Comma | Integer | Double | LBrace | RBrace | LBracket | RBracket | LParen | RParen | Class )\r
+        int alt12=13;\r
+        alt12 = dfa12.predict(input);\r
+        switch (alt12) {\r
+            case 1 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:10: WhiteSpace\r
+                {\r
+                mWhiteSpace(); \r
+\r
+                }\r
+                break;\r
+            case 2 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:21: String\r
+                {\r
+                mString(); \r
+\r
+                }\r
+                break;\r
+            case 3 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:28: Colon\r
+                {\r
+                mColon(); \r
+\r
+                }\r
+                break;\r
+            case 4 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:34: Comma\r
+                {\r
+                mComma(); \r
+\r
+                }\r
+                break;\r
+            case 5 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:40: Integer\r
+                {\r
+                mInteger(); \r
+\r
+                }\r
+                break;\r
+            case 6 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:48: Double\r
+                {\r
+                mDouble(); \r
+\r
+                }\r
+                break;\r
+            case 7 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:55: LBrace\r
+                {\r
+                mLBrace(); \r
+\r
+                }\r
+                break;\r
+            case 8 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:62: RBrace\r
+                {\r
+                mRBrace(); \r
+\r
+                }\r
+                break;\r
+            case 9 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:69: LBracket\r
+                {\r
+                mLBracket(); \r
+\r
+                }\r
+                break;\r
+            case 10 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:78: RBracket\r
+                {\r
+                mRBracket(); \r
+\r
+                }\r
+                break;\r
+            case 11 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:87: LParen\r
+                {\r
+                mLParen(); \r
+\r
+                }\r
+                break;\r
+            case 12 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:94: RParen\r
+                {\r
+                mRParen(); \r
+\r
+                }\r
+                break;\r
+            case 13 :\r
+                // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:1:101: Class\r
+                {\r
+                mClass(); \r
+\r
+                }\r
+                break;\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    protected DFA12 dfa12 = new DFA12(this);\r
+    static final String DFA12_eotS =\r
+        "\6\uffff\2\17\11\uffff\1\17";\r
+    static final String DFA12_eofS =\r
+        "\22\uffff";\r
+    static final String DFA12_minS =\r
+        "\1\11\4\uffff\1\60\2\56\11\uffff\1\56";\r
+    static final String DFA12_maxS =\r
+        "\1\175\4\uffff\1\71\2\145\11\uffff\1\145";\r
+    static final String DFA12_acceptS =\r
+        "\1\uffff\1\1\1\2\1\3\1\4\3\uffff\1\7\1\10\1\11\1\12\1\13\1\14\1"+\r
+        "\15\1\5\1\6\1\uffff";\r
+    static final String DFA12_specialS =\r
+        "\22\uffff}>";\r
+    static final String[] DFA12_transitionS = {\r
+            "\2\1\1\uffff\2\1\22\uffff\1\1\1\uffff\1\2\5\uffff\1\14\1\15"+\r
+            "\2\uffff\1\4\1\5\2\uffff\1\6\11\7\1\3\40\uffff\1\12\1\uffff"+\r
+            "\1\13\5\uffff\1\16\27\uffff\1\10\1\uffff\1\11",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "\1\6\11\7",\r
+            "\1\20\26\uffff\1\20\37\uffff\1\20",\r
+            "\1\20\1\uffff\12\21\13\uffff\1\20\37\uffff\1\20",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "\1\20\1\uffff\12\21\13\uffff\1\20\37\uffff\1\20"\r
+    };\r
+\r
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);\r
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);\r
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);\r
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);\r
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);\r
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);\r
+    static final short[][] DFA12_transition;\r
+\r
+    static {\r
+        int numStates = DFA12_transitionS.length;\r
+        DFA12_transition = new short[numStates][];\r
+        for (int i=0; i<numStates; i++) {\r
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);\r
+        }\r
+    }\r
+\r
+    class DFA12 extends DFA {\r
+\r
+        public DFA12(BaseRecognizer recognizer) {\r
+            this.recognizer = recognizer;\r
+            this.decisionNumber = 12;\r
+            this.eot = DFA12_eot;\r
+            this.eof = DFA12_eof;\r
+            this.min = DFA12_min;\r
+            this.max = DFA12_max;\r
+            this.accept = DFA12_accept;\r
+            this.special = DFA12_special;\r
+            this.transition = DFA12_transition;\r
+        }\r
+        public String getDescription() {\r
+            return "1:1: Tokens : ( WhiteSpace | String | Colon | Comma | Integer | Double | LBrace | RBrace | LBracket | RBracket | LParen | RParen | Class );";\r
+        }\r
+    }\r
\r
+\r
+}
\ No newline at end of file
diff --git a/src/main/java/org/xerial/silk/schema/impl/SilkSchemaParser.java b/src/main/java/org/xerial/silk/schema/impl/SilkSchemaParser.java
new file mode 100644 (file)
index 0000000..27f89ff
--- /dev/null
@@ -0,0 +1,234 @@
+// $ANTLR 3.1.1 d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g 2009-07-01 18:57:06\r
+\r
+/*--------------------------------------------------------------------------\r
+ *  Copyright 2009 Taro L. Saito\r
+ *\r
+ *  Licensed under the Apache License, Version 2.0 (the "License");\r
+ *  you may not use this file except in compliance with the License.\r
+ *  You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *  Unless required by applicable law or agreed to in writing, software\r
+ *  distributed under the License is distributed on an "AS IS" BASIS,\r
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *  See the License for the specific language governing permissions and\r
+ *  limitations under the License.\r
+ *--------------------------------------------------------------------------*/\r
+//--------------------------------------\r
+// XerialJ\r
+//\r
+// SilkSchemaParser.java\r
+// Since: Jun 23, 2009 1:00:02 PM\r
+//\r
+//--------------------------------------\r
+package org.xerial.silk.schema.impl;\r
+\r
+\r
+import org.antlr.runtime.*;\r
+import java.util.Stack;\r
+import java.util.List;\r
+import java.util.ArrayList;\r
+\r
+\r
+import org.antlr.runtime.tree.*;\r
+\r
+public class SilkSchemaParser extends Parser {\r
+    public static final String[] tokenNames = new String[] {\r
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Schema", "WhiteSpace", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Colon", "Comma", "Integer", "Frac", "Exp", "Double", "LBrace", "RBrace", "LBracket", "RBracket", "LParen", "RParen", "Class"\r
+    };\r
+    public static final int RBrace=21;\r
+    public static final int Class=26;\r
+    public static final int LBracket=22;\r
+    public static final int Digit=6;\r
+    public static final int Frac=17;\r
+    public static final int HexDigit=8;\r
+    public static final int Exp=18;\r
+    public static final int RParen=25;\r
+    public static final int UnicodeChar=9;\r
+    public static final int StringChar=11;\r
+    public static final int LParen=24;\r
+    public static final int String=13;\r
+    public static final int Letter=7;\r
+    public static final int Comma=15;\r
+    public static final int Schema=4;\r
+    public static final int EscapeSequence=10;\r
+    public static final int EOF=-1;\r
+    public static final int StringChar_s=12;\r
+    public static final int Integer=16;\r
+    public static final int LBrace=20;\r
+    public static final int Double=19;\r
+    public static final int RBracket=23;\r
+    public static final int WhiteSpace=5;\r
+    public static final int Colon=14;\r
+\r
+    // delegates\r
+    // delegators\r
+\r
+\r
+        public SilkSchemaParser(TokenStream input) {\r
+            this(input, new RecognizerSharedState());\r
+        }\r
+        public SilkSchemaParser(TokenStream input, RecognizerSharedState state) {\r
+            super(input, state);\r
+             \r
+        }\r
+        \r
+    protected TreeAdaptor adaptor = new CommonTreeAdaptor();\r
+\r
+    public void setTreeAdaptor(TreeAdaptor adaptor) {\r
+        this.adaptor = adaptor;\r
+    }\r
+    public TreeAdaptor getTreeAdaptor() {\r
+        return adaptor;\r
+    }\r
+\r
+    public String[] getTokenNames() { return SilkSchemaParser.tokenNames; }\r
+    public String getGrammarFileName() { return "d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g"; }\r
+\r
+\r
+    public static class schema_return extends ParserRuleReturnScope {\r
+        Object tree;\r
+        public Object getTree() { return tree; }\r
+    };\r
+\r
+    // $ANTLR start "schema"\r
+    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:135:1: schema : ( classDefinition )* ;\r
+    public final SilkSchemaParser.schema_return schema() throws RecognitionException {\r
+        SilkSchemaParser.schema_return retval = new SilkSchemaParser.schema_return();\r
+        retval.start = input.LT(1);\r
+\r
+        Object root_0 = null;\r
+\r
+        SilkSchemaParser.classDefinition_return classDefinition1 = null;\r
+\r
+\r
+\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:136:3: ( ( classDefinition )* )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:136:5: ( classDefinition )*\r
+            {\r
+            root_0 = (Object)adaptor.nil();\r
+\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:136:5: ( classDefinition )*\r
+            loop1:\r
+            do {\r
+                int alt1=2;\r
+                int LA1_0 = input.LA(1);\r
+\r
+                if ( (LA1_0==Class) ) {\r
+                    alt1=1;\r
+                }\r
+\r
+\r
+                switch (alt1) {\r
+               case 1 :\r
+                   // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:136:6: classDefinition\r
+                   {\r
+                   pushFollow(FOLLOW_classDefinition_in_schema403);\r
+                   classDefinition1=classDefinition();\r
+\r
+                   state._fsp--;\r
+\r
+                   adaptor.addChild(root_0, classDefinition1.getTree());\r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   break loop1;\r
+                }\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+            retval.stop = input.LT(-1);\r
+\r
+            retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
+            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
+\r
+        }\r
+        catch (RecognitionException re) {\r
+            reportError(re);\r
+            recover(input,re);\r
+       retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
+\r
+        }\r
+        finally {\r
+        }\r
+        return retval;\r
+    }\r
+    // $ANTLR end "schema"\r
+\r
+    public static class classDefinition_return extends ParserRuleReturnScope {\r
+        Object tree;\r
+        public Object getTree() { return tree; }\r
+    };\r
+\r
+    // $ANTLR start "classDefinition"\r
+    // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:139:1: classDefinition : Class LBrace RBrace ;\r
+    public final SilkSchemaParser.classDefinition_return classDefinition() throws RecognitionException {\r
+        SilkSchemaParser.classDefinition_return retval = new SilkSchemaParser.classDefinition_return();\r
+        retval.start = input.LT(1);\r
+\r
+        Object root_0 = null;\r
+\r
+        Token Class2=null;\r
+        Token LBrace3=null;\r
+        Token RBrace4=null;\r
+\r
+        Object Class2_tree=null;\r
+        Object LBrace3_tree=null;\r
+        Object RBrace4_tree=null;\r
+\r
+        try {\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:140:3: ( Class LBrace RBrace )\r
+            // d:\\work\\eclipse\\xerial\\xerial-core\\src\\main\\java\\org\\xerial\\silk\\schema\\impl\\SilkSchema.g:140:5: Class LBrace RBrace\r
+            {\r
+            root_0 = (Object)adaptor.nil();\r
+\r
+            Class2=(Token)match(input,Class,FOLLOW_Class_in_classDefinition423); \r
+            Class2_tree = (Object)adaptor.create(Class2);\r
+            adaptor.addChild(root_0, Class2_tree);\r
+\r
+            LBrace3=(Token)match(input,LBrace,FOLLOW_LBrace_in_classDefinition425); \r
+            LBrace3_tree = (Object)adaptor.create(LBrace3);\r
+            adaptor.addChild(root_0, LBrace3_tree);\r
+\r
+            RBrace4=(Token)match(input,RBrace,FOLLOW_RBrace_in_classDefinition427); \r
+            RBrace4_tree = (Object)adaptor.create(RBrace4);\r
+            adaptor.addChild(root_0, RBrace4_tree);\r
+\r
+\r
+            }\r
+\r
+            retval.stop = input.LT(-1);\r
+\r
+            retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
+            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
+\r
+        }\r
+        catch (RecognitionException re) {\r
+            reportError(re);\r
+            recover(input,re);\r
+       retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
+\r
+        }\r
+        finally {\r
+        }\r
+        return retval;\r
+    }\r
+    // $ANTLR end "classDefinition"\r
+\r
+    // Delegated rules\r
+\r
+\r
\r
+\r
+    public static final BitSet FOLLOW_classDefinition_in_schema403 = new BitSet(new long[]{0x0000000004000002L});\r
+    public static final BitSet FOLLOW_Class_in_classDefinition423 = new BitSet(new long[]{0x0000000000100000L});\r
+    public static final BitSet FOLLOW_LBrace_in_classDefinition425 = new BitSet(new long[]{0x0000000000200000L});\r
+    public static final BitSet FOLLOW_RBrace_in_classDefinition427 = new BitSet(new long[]{0x0000000000000002L});\r
+\r
+}
\ No newline at end of file