Sapid JX-model ver. 1.3.13 2003 2 27 1 JX-model Java XML JX-model JX-model Java (Java 2 ver. 1.4) 20 7 JX-model 1 ^ $ Child nodes JX-model / ( ) JX-model @ @id @sort 1.1 File File JX-model XML /Package, /Import, /Class, /Intf 1.2 Package package ^package JXModel3.j2jx;$ /QName 1.3 Import import ^import java.awt.*;$ /QName 1
1: JX-model XML File Package Import Class Intf Ctor Method SInit Field Param Local ExtdOpt ImplOpt ThrwOpt Members QName Type Stmt Label Expr ident literal comment kw op sp nl static 2
1.4 Class class ^public class MyClass { $ @access, @final, @abstract, @static /ImplOpt, /ExtdOpt, /Members 1.5 Intf interface ^public interface MyInterface { $ @access, @final, @abstract /ExtdOpt, /Members 1.6 Ctor public class MyClass { ^public MyClass(int field) { this.field = field; $ @access /Param, /ThrwOpt, /Stmt (@sort= BLOCK ) 1.7 Method public class MyClass { ^public int getx() { return x; 3
$ @typefirst, @access, @final, @abstract, @static, @synchro, @native /Type, /Param, /ThrwOpt, /Stmt (@sort= BLOCK ) 1.8 SInit static static public class MyClass { ^static { classfield = 0; $ /Stmt (@sort= BLOCK ) 1.9 Field Fields public class MyClass { ^int field1 = 0$, ^field2 = 0$; @typefirst, @omitted, @access, @final, @static, @volatile, @transient /Type, /Expr 1.10 Param public class MyClass { public void setx(^int x$) { this.x = x; @typefirst, @final /Type, /Qname 4
1.11 Local Locals public class MyClass { public void getx() { ^int local1 = 0$, ^local2 = 0$; @typefirst, @omitted, @final, @volatile /Type, /Expr 1.12 ExtdOpt public interface Derived extends ^MyInterface$ { @typefirst /QName, /Type 1.13 ImplOpt public class MyClass implements ^MyInterface$ { @typefirst /QName, /Type 1.14 ThrwOpt public class MyClass { public int getx() throws ^IOException$ { 5
@typefirst /QName, /Type 1.15 Members Stmt (sort = Block ) public class MyClass ^{ $ /Class, /Intf, /Ctor, /Method, /SInit, /Field 1.16 QName Japid QName import ^^^java$.^awt$$.^*$$; public class MySerializable implements ^^java$.^io$$.serializable { /QName 1.17 Type Java typenext C Java sort Array Primitive Object [ ] (void ) public DataBufferInt(^int$ dataarray^[]$^[]$, ^int$ size) { super(type_int, size, dataarray.length); bankdata = (^int$ ^[]$^[]$) dataarray.clone(); data = bankdata[0]; @typenext, @qname 6
1.18 Stmt sort sort EMPTY EXPR BLOCK DOWHILE WHILE FOR IFELSE SWITCH BREAK CONT RETURN SYNC THROW TRY ASSERT do-while while for if-else switch break continue return synchronized throw try catch finally assert public DataBufferInt(int dataarray[][], int size) ^{ ^super(type_int, size, dataarray.length);$ ^bankdata = (int [][]) dataarray.clone();$ ^data = bankdata[0];$ $ /Stmt, /Local, /Expr, /Label, /Class, /Intf 1.19 Label switch case default Label /Expr 1.20 Expr sort 7
sort MUL DIV MOD ADD SUB SHL SHR SHRZ NOT AND XOR OR Assign Assign[op] DOT InstanceOf PreINC PreDEC PostINC PostDEC Plus Minus LogicalNOT LogicalAND LogicalXOR LogicalOR CondLT CondGT CondLE CondEQ CondNE CondGE Selection AND XOR OR [op] instanceof 8
sort CtorCall SpCtorCall MethodCall Listed ArrayAccess InstanceCreation ArrayCreation Cast Paren VarRef TypeRef Literal This Class Empty ( ) Japid new new MethodCall, VarRef read write Type this for public DataBufferInt(int dataarray[][], int size) { ^super(^type_int$, ^size$, ^^dataarray$.^length$$)$; ^^bankdata$ = ^(^int [][]$) ^^dataarray$.^clone()$$$$; ^^data$ = ^^bankdata$[^0$]$$; @read, @write, @typefirst /Expr, /QName, /Type, /Class 1.21 ident Java public ^DataBufferInt$(int ^dataarray$[][], int ^size$) { super(^type_int$, ^size$, ^dataarray$.^length$); ^bankdata$ = (int [][]) ^dataarray$.^clone$(); ^data$ = ^bankdata$[0]; @defid 1.22 literal Java sort 9
sort INT FLOAT STR CHAR BOOL NULL true or false null public DataBufferInt(int dataarray[][], int size) { super(type_int, size, dataarray.length); bankdata = (int [][]) dataarray.clone(); data = bankdata[^0$]; 1.23 comment // sort sort block /* */ inline /* */ line // 1.24 kw Java abstract, boolean, break, byte, case, catch, char, class, continue, default, do, double, else, extends, final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while 1.25 op Java!,!=, %, %=, &, &&, &=, (, ), *, *=, +, ++, +=,,, -, --, -=,., /, /=, :, ;, <, <<, <<=, <=, =, ==, >, >=, >>, >>=, >>>, >>>=,?, [, ], ^, ^=, {,, =,,, ~, \[[ \t]*\] 1.26 sp 1.27 nl CR, LF, CR+LF 10
2 JX-model JX-model id ID sort NMTOKEN typefirst IDREF Type typenext IDREF qname IDREF QName QName omitted BOOL yes access NMTOKEN Public, Protedted, Private final BOOL final yes abstract BOOL abstract yes static BOOL static yes synchro BOOL synchronized yes native BOOL native yes volatile BOOL volatile yes transient BOOL transient yes strictfp BOOL strictfp yes read BOOL yes write BOOL yes defid IDREF 3 DTD DTD 1: <!-- 2: # 3: # Program: $RCSfile: JX-model3.dtd,v $ $Revision: 40.23 $ 4: # 5: # Purpose: JX-model ver. 1.3.14. 6: # 7: # Author: H.Yoshida 2002/12/28 8: # S.Yamamoto 2003/02/13 9: # 10: # (C) Copyright: H.Yoshida and S.Yamamoto 2002-2003 11: # This file is a product of the project Sapid. 12: # 13: --> 14: 15: <!-- 16: $Id: JX-model3.dtd,v 40.23 2003/10/02 11:41:59 yamamoto Exp yamamoto $ 17: --> 18: 19: <!-- 11
20: Note: 21: (1) Anonymous class has some problems. 22: 23: (2) Element "nl" s attribute "line" should be "#REQUIRED". 24: --> 25: 26: <!ELEMENT File (Package Import Class Intf op comment sp nl)*> 27: <!ELEMENT Package (QName kw op comment sp nl)*> 28: <!ELEMENT Import (QName kw op comment sp nl)*> 29: <!ELEMENT Class (Type Expr ImplOpt ExtdOpt Members ident kw op comment sp nl)*> 30: <!ELEMENT Intf (ExtdOpt Members ident kw op comment sp nl)*> 31: <!ELEMENT ImplOpt (QName Type op comment sp nl)*> 32: <!ELEMENT ExtdOpt (QName Type op comment sp nl)*> 33: <!ELEMENT ThrwOpt (QName Type op comment sp nl)*> 34: <!ELEMENT Members (QName Class Intf Ctor Method SInit Field op comment sp nl)*> 35: 36: <!ELEMENT Method (QName Type Param ThrwOpt Stmt ident kw op comment sp nl)*> 37: <!ELEMENT Ctor (Param ThrwOpt Stmt ident kw op comment sp nl)*> 38: <!ELEMENT SInit (Stmt kw comment sp nl)*> 39: <!ELEMENT Field (QName Type Expr ident kw op comment sp nl)*> 40: <!ELEMENT Local (QName Type Expr ident kw op comment sp nl)*> 41: <!ELEMENT Param (QName Type ident kw op comment sp nl)*> 42: <!ELEMENT QName (QName ident op comment sp nl)*> 43: <!ELEMENT Type (ident kw op comment sp nl)*> 44: <!ELEMENT Stmt (QName Type Stmt Local Class Intf Expr Label ident kw op comment sp nl)*> 45: <!ELEMENT Expr (Expr QName Type Class ident literal kw op comment sp nl)*> 46: <!ELEMENT Label (Expr ident kw op comment sp nl)*> 47: 48: <!ELEMENT ident (#PCDATA)> 49: <!ELEMENT literal (#PCDATA)> 50: <!ELEMENT kw (#PCDATA)> 51: <!ELEMENT op (#PCDATA)> 52: 53: <!ELEMENT comment (#PCDATA)> 54: <!ELEMENT sp (#PCDATA)> 55: <!ELEMENT nl (#PCDATA)> 56: 57: <!ATTLIST File id ID #REQUIRED> 58: <!ATTLIST File path NMTOKEN #IMPLIED> 59: <!ATTLIST File name NMTOKEN #IMPLIED> 60: <!ATTLIST File sort NMTOKEN #IMPLIED> 61: <!ATTLIST File newline NMTOKEN #IMPLIED> 62: 63: <!ATTLIST Package id ID #REQUIRED> 64: 65: <!ATTLIST Import id ID #REQUIRED> 12
66: 67: <!ATTLIST Class id ID #REQUIRED> 68: <!ATTLIST Class fqn NMTOKEN #IMPLIED> 69: <!ATTLIST Class access NMTOKEN #IMPLIED> 70: <!ATTLIST Class final (yes no) #IMPLIED> 71: <!ATTLIST Class abstract (yes no) #IMPLIED> 72: <!ATTLIST Class static (yes no) #IMPLIED> 73: <!ATTLIST Class strictfp (yes no) #IMPLIED> 74: 75: <!ATTLIST Intf id ID #REQUIRED> 76: <!ATTLIST Intf fqn NMTOKEN #IMPLIED> 77: <!ATTLIST Intf access NMTOKEN #IMPLIED> 78: <!ATTLIST Intf final (yes no) #IMPLIED> 79: <!ATTLIST Intf abstract (yes no) #IMPLIED> 80: <!ATTLIST Intf static (yes no) #IMPLIED> 81: <!ATTLIST Intf strictfp (yes no) #IMPLIED> 82: 83: <!ATTLIST ImplOpt id ID #REQUIRED> 84: <!ATTLIST ImplOpt typefirst IDREF #IMPLIED> 85: 86: <!ATTLIST ExtdOpt id ID #REQUIRED> 87: <!ATTLIST ExtdOpt typefirst IDREF #IMPLIED> 88: 89: <!ATTLIST ThrwOpt id ID #REQUIRED> 90: <!ATTLIST ThrwOpt typefirst IDREF #IMPLIED> 91: 92: <!ATTLIST Method id ID #REQUIRED> 93: <!ATTLIST Method typefirst IDREF #IMPLIED> 94: <!ATTLIST Method access NMTOKEN #IMPLIED> 95: <!ATTLIST Method final (yes no) #IMPLIED> 96: <!ATTLIST Method abstract (yes no) #IMPLIED> 97: <!ATTLIST Method static (yes no) #IMPLIED> 98: <!ATTLIST Method synchro (yes no) #IMPLIED> 99: <!ATTLIST Method native (yes no) #IMPLIED> 100: <!ATTLIST Method strictfp (yes no) #IMPLIED> 101: 102: <!ATTLIST Ctor id ID #REQUIRED> 103: <!ATTLIST Ctor access NMTOKEN #IMPLIED> 104: 105: <!ATTLIST SInit id ID #REQUIRED> 106: 107: <!ATTLIST Field id ID #REQUIRED> 108: <!ATTLIST Field typefirst IDREF #IMPLIED> 109: <!ATTLIST Field omitted (yes no) #IMPLIED> 110: <!ATTLIST Field access NMTOKEN #IMPLIED> 111: <!ATTLIST Field final (yes no) #IMPLIED> 13
112: <!ATTLIST Field static (yes no) #IMPLIED> 113: <!ATTLIST Field volatile (yes no) #IMPLIED> 114: <!ATTLIST Field transient (yes no) #IMPLIED> 115: 116: <!ATTLIST Local id ID #REQUIRED> 117: <!ATTLIST Local typefirst IDREF #IMPLIED> 118: <!ATTLIST Local omitted (yes no) #IMPLIED> 119: <!ATTLIST Local final (yes no) #IMPLIED> 120: <!ATTLIST Local volatile (yes no) #IMPLIED> 121: 122: <!ATTLIST Param id ID #REQUIRED> 123: <!ATTLIST Param typefirst IDREF #IMPLIED> 124: <!ATTLIST Param final (yes no) #IMPLIED> 125: 126: <!ATTLIST QName id ID #REQUIRED> 127: 128: <!ATTLIST Type id ID #REQUIRED> 129: <!ATTLIST Type fqn NMTOKEN #IMPLIED> 130: <!ATTLIST Type sort NMTOKEN #IMPLIED> 131: <!ATTLIST Type typenext IDREF #IMPLIED> 132: <!ATTLIST Type qname IDREF #IMPLIED> 133: 134: <!ATTLIST Stmt id ID #REQUIRED> 135: <!ATTLIST Stmt sort NMTOKEN #IMPLIED> 136: 137: <!ATTLIST Label id ID #REQUIRED> 138: 139: <!ATTLIST Expr id ID #REQUIRED> 140: <!ATTLIST Expr sort NMTOKEN #IMPLIED> 141: <!ATTLIST Expr read (yes no) #IMPLIED> 142: <!ATTLIST Expr write (yes no) #IMPLIED> 143: <!ATTLIST Expr typefirst IDREF #IMPLIED> 144: 145: <!ATTLIST ident id ID #IMPLIED> 146: <!ATTLIST ident defid IDREF #IMPLIED> 147: 148: <!ATTLIST literal id ID #IMPLIED> 149: <!ATTLIST literal sort NMTOKEN #IMPLIED> 150: 151: <!ATTLIST comment id ID #IMPLIED> 152: <!ATTLIST comment sort NMTOKEN #IMPLIED> 153: 154: <!ATTLIST nl line NMTOKEN #IMPLIED> 155: <!ATTLIST nl offset NMTOKEN #IMPLIED> 14
4 2002/08/07 S.Yamamoto 2002/12/12 H.Yoshida ver. 1.3.7 2003/01/15 S.Yamamoto ver. 1.3.9 2003/02/13 S.Yamamoto ver. 1.3.11 2003/02/26 S.Yamamoto ver. 1.3.12 2003/02/27 S.Yamamoto ver. 1.3.13 4.1 JX-model ver. 1.3.13 (Sapid-4.879, 2003/02/26) Stmt ASSERT JX-model ver. 1.3.12 (Sapid-4.874, 2003/02/26) Param Child node Qname op JX-model ver. 1.3.11 (Sapid-4.841, 2003/02/13) Class, Intf, Method strictfp JX-model ver. 1.3.9 (Sapid-4.780, 2003/01/15) nl offset line File newline JX-model ver. 1.3.8 (2002/12/28) Package, Import, ExtdOpt, ImplOpt, ThrwOpt id JX-model ver. 1.3.7 (2002/12/12) QName ident/op #PCDATA Stmt sort literal sort Expr sort CondXX? Conditional Selection JX-model ver. 1.3.5 T kw, op, sp, nl 15
JX-model ver. 1.3 Decl Package, Import, Class, Intf, Ctor, Method, SInit, Field, Param, Local, ExtdOpt, ImplOpt, ThrwOpt Body Members : ident Label 16
1 JX-model 1 1.1 File................................................ 1 1.2 Package.............................................. 1 1.3 Import............................................... 1 1.4 Class................................................ 3 1.5 Intf................................................. 3 1.6 Ctor................................................ 3 1.7 Method.............................................. 3 1.8 SInit................................................ 4 1.9 Field................................................ 4 1.10 Param............................................... 4 1.11 Local................................................ 5 1.12 ExtdOpt.............................................. 5 1.13 ImplOpt.............................................. 5 1.14 ThrwOpt............................................. 5 1.15 Members............................................. 6 1.16 QName.............................................. 6 1.17 Type................................................ 6 1.18 Stmt................................................ 7 1.19 Label............................................... 7 1.20 Expr................................................ 7 1.21 ident................................................ 9 1.22 literal............................................... 9 1.23 comment.............................................. 10 1.24 kw................................................. 10 1.25 op................................................. 10 1.26 sp................................................. 10 1.27 nl.................................................. 10 2 JX-model 11 3 DTD 11 4 15 4.1.............................................. 15 17