User Tools

Site Tools


documentation:tiny2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:tiny2 [2023/09/16 14:12] – <sections> -> <content> nebelnidasdocumentation:tiny2 [2025/10/28 08:11] (current) – Add example for element without destination name nebelnidas
Line 12: Line 12:
  someProperty someValue  someProperty someValue
  anotherProperty  anotherProperty
-c a class_123 pkg/SomeClass+c a Class_123 pkg/SomeClass
  f [I a field_789 someField  f [I a field_789 someField
  m (III)V a method_456 someMethod  m (III)V a method_456 someMethod
Line 19: Line 19:
  p 3 param_2 z  p 3 param_2 z
  c Just a method for demonstrating the format.  c Just a method for demonstrating the format.
-c b class_234 pkg/xy/AnotherClass+c b ClassWithoutDstName
  m (Ljava/lang/String;)I a method_567 anotherMethod  m (Ljava/lang/String;)I a method_567 anotherMethod
 </code> </code>
Line 41: Line 41:
 <property-value>                ::= <escaped-string> <property-value>                ::= <escaped-string>
  
-<content>                      ::= '' | <class-section> <content>+<content>                       ::= '' | <class-section> <content>
  
 <class-section>                 ::= 'c' <tab> <class-name-a> <tab> <class-name-b> <extra-ns-class-names> <eol> <class-sub-sections> <class-section>                 ::= 'c' <tab> <class-name-a> <tab> <class-name-b> <extra-ns-class-names> <eol> <class-sub-sections>
Line 47: Line 47:
 <class-name-b>                  ::= <optional-class-name> <class-name-b>                  ::= <optional-class-name>
 <optional-class-name>           ::= '' | <class-name> <optional-class-name>           ::= '' | <class-name>
-<extra-ns-cls-names>            ::= '' | <tab> <optional-class-name> <extra-ns-class-names>+<extra-ns-class-names>          ::= '' | <tab> <optional-class-name> <extra-ns-class-names>
 <class-name>                    ::= <conf-safe-string> <class-name>                    ::= <conf-safe-string>
 <class-sub-sections>            ::= '' | <class-comment-section> <class-sub-sections> | <field-section> <class-sub-sections> | <method-section> <class-sub-sections> <class-sub-sections>            ::= '' | <class-comment-section> <class-sub-sections> | <field-section> <class-sub-sections> | <method-section> <class-sub-sections>
Line 98: Line 98:
   * ''%%<safe-string>%%'' is a non-empty string that must not contain:   * ''%%<safe-string>%%'' is a non-empty string that must not contain:
     * ''\'',     * ''\'',
-    * ''"\n"'', +    * ''\n'', 
-    * ''"\r"'', +    * ''\r'', 
-    * ''"\t"'' or +    * ''\t'' or 
-    * ''"\0"''.+    * ''\0''.
   * ''%%<conf-safe-string>%%'' is the same as ''%%<safe-string>%%'' if ''%%<properties>%%'' doesn't contain a ''%%<property>%%'' ''escaped-names'', otherwise it's a non-empty string further described by ''%%<escaped-string>%%''.   * ''%%<conf-safe-string>%%'' is the same as ''%%<safe-string>%%'' if ''%%<properties>%%'' doesn't contain a ''%%<property>%%'' ''escaped-names'', otherwise it's a non-empty string further described by ''%%<escaped-string>%%''.
-  * ''%%<escaped-string>%%'' is a string that must not contain ''%%<eol>%%'' and escapes+  * ''%%<escaped-string>%%'' is a string that must not contain an ''%%<eol>%%''escapes ''\'' to ''\\'' and the other forbidden values to their string literal equivalentsas seen in the list above.
-    *  ''\'' to ''\\''+
-    * ''"\n"'' to ''\n'', +
-    * ''"\r"'' to ''\r'', +
-    * ''"\t"'' to ''\t'' and +
-    * ''"\0"'' to ''\0''.+
   * ''%%<non-negative-int>%%'' is any integer from 0 to 2147483647 (2^31-1) inclusive, represented as per ''java.lang.Integer.toString()''.   * ''%%<non-negative-int>%%'' is any integer from 0 to 2147483647 (2^31-1) inclusive, represented as per ''java.lang.Integer.toString()''.
   * ''%%<class-name>%%'', once optionally unescaped, is the binary name of a class as specified in JVMS SE 8 §4.2.1. Nested class identifiers are typically separated with ''$'' (e.g. ''some/package/class$nested$subnested''). Outer names must not be omitted for any namespace.   * ''%%<class-name>%%'', once optionally unescaped, is the binary name of a class as specified in JVMS SE 8 §4.2.1. Nested class identifiers are typically separated with ''$'' (e.g. ''some/package/class$nested$subnested''). Outer names must not be omitted for any namespace.
Line 123: Line 118:
   * Indenting uses tab characters exclusively, one tab character equals one level. The amount of leading tab characters is at most 1 more than in the preceding line.   * Indenting uses tab characters exclusively, one tab character equals one level. The amount of leading tab characters is at most 1 more than in the preceding line.
   * Sections or properties with unknown types/keys should be skipped without generating an error.   * Sections or properties with unknown types/keys should be skipped without generating an error.
-  * The amount of extra namespaces defined in the header and the amount of names in every ''%%extra-ns-*-names%%'' definition have to match. They are associated by their relative position, like the mandatory name spaces a and b that are associated by the suffix, e.g. ''%%namespace-a%%'' covers ''%%class-name-a%%'', ''%%field-name-a%%'', ''%%field-desc-a%%'', ''%%method-name-a%%'', ''%%method-desc-a%%'' and ''%%var-desc-a%%'',.+  * The amount of extra namespaces defined in the header and the amount of names in every ''%%extra-ns-*-names%%'' definition have to match. They are associated by their relative position, like the mandatory name spaces ''a'' and ''b'' that are associated by the suffix, e.g. ''%%namespace-a%%'' covers ''%%class-name-a%%'', ''%%field-name-a%%'', ''%%field-desc-a%%'', ''%%method-name-a%%'', ''%%method-desc-a%%'' and ''%%var-desc-a%%'',.
   * Sections representing the same element must not be repeated, e.g. there can be only one top-level section for a specific class or one class-level section for a specific member.   * Sections representing the same element must not be repeated, e.g. there can be only one top-level section for a specific class or one class-level section for a specific member.
   * If any variable mapping doesn't specify a LVT index, e.g. due to a missing ''LocalVariableTable'' attribute in one of the methods, the property ''missing-lvt-indices'' has to be added to.   * If any variable mapping doesn't specify a LVT index, e.g. due to a missing ''LocalVariableTable'' attribute in one of the methods, the property ''missing-lvt-indices'' has to be added to.
documentation/tiny2.1694873577.txt.gz · Last modified: 2023/09/16 14:12 by nebelnidas