Skip to content

SerialX 1.3.0 - V3

Compare
Choose a tag to compare
@SimplyProgrammer SimplyProgrammer released this 11 Aug 18:01
· 41 commits to master since this release
3338259

Recursive descent parser

What was added:

  • Revelation of compiler that is now Recursive descent parser that is customizable and configurable.
  • Structure of entire API was generally reorganized into 3 main sections:
    • Serializer - which is main class that operates entire API. Is responsible for input and output, formatting and general utility!
    • DataParser and DataConverter API - is recursive descent parser itself that is responsible for converting objects to strings and parsing them back! In default SerialX API implementation now known as JUSS (Java universal serial script) are these parsers and converters available:
      • NumberConverter - for converting and parsing numbers (integers, decimals, hexa, bin)!
      • BooleanConverter - for converting and parsing booleans!
      • CharacterConverter - for converting and parsing chars!
      • StringConverter - for converting and parsing strings ("Hello world!", "And others...")!
      • NullConverter - for converting and parsing null!
      • ObjectConverter - for converting and parsing SerializationProtocol expressions and Scopes!
      • VariableConverter - for converting and parsing JUSS variables (Map.Entry)!
      • SerializableBase64Converter - for converting and parsing Base64 expressions (java.io.Serializable)!
      • ArrayConverter - for converting and parsing primitive arrays!

      • OperationGroups - for parsing expression groups such as (5 + 5) / 2
      • ArithmeticOperators - for parsing arithmetic expressions such as 2 + 5 * 4 ** 2
      • LogicalOperators - for parsing logical expressions such as true && false || true
      • ComparisonOperators - for comparing objects, for instance 6 > 5
      • ConditionalAssignmentOperators - that provides ternary operator (?:) and null coalescing (??)
      • NegationOperator - to negate stuff, for example !true

      • As mentioned. you can create your own parsers or even replace already existing ones with yours!
    • SerializationProtocol API - long known protocol system for more complex objects. It contains 8 protocols as before! Now protocols are operated by ObjectConverter!
  • New import system that allows you to import some class once with certain alias and then use it with that alias, similar to java!
  • Too big integers are now auto-converted into longs without necessarily of using L suffix!
  • Small new syntax features and alot of small enhancements!
  • Alot of string utility methods from Serializer became public and some were moved into converters where they are mainly used!
  • Registry object which is Collection type that can store only one instance per class!
  • Some new functions in Scope!
  • Deprecated methods were removed!
  • Source code was excluded from main jar to save space and is now available in separate src.zip file! Now on java doc files will not be provided and src.zip should be used instead!
  • Small bugs fixed but there were alot of internal changes in this update so there might be another bugs so I encourage you to report any bug you encounter!