ULS Changelog

What's new in ULS 1.4.2

Dec 21, 2013
  • Fixed the miss of consraint that the maximum number of literal-string types is eight per uls-spec(*.ulc). At most four literal-string types are permitted in the previous releases.

New in ULS 1.4.1 (Sep 30, 2013)

  • Support MBCS entirely in Windows.
  • Uls tools(Ulc2Class.exe, UlsStream.exe, UlfGen.exe) will recognize the ANSI-encoded command arguments correctly.
  • The ANSI encoded files without (UTF) BOM will be properly processed.
  • In the APIs having string(char *) type parameters, those parameters will be ANSI-encoded or utf8 string
  • according to the platform, Windows or Linux.
  • _T(or TEXT) macro for wide string parameters can be used in Windows.
  • _T(str) expands the 'str' into (ANSI encoded) multbyte string or wide string
  • depending on the existence of the macro _UNICODE.
  • A few bug fixes, especially in *wprintf().

New in ULS 1.4 (Jun 24, 2013)

  • Support UTF-16, UTF-32 input file as well as UTF-8. Use only file or string as input source.
  • Use uls_{set,push}_file() or uls_{set,push}_uline() to tokenize UTF-16(LE,BE), UTF32(LE,BE) files.
  • ULS will recognize BOM at the beginning of UTF file.
  • The file void of BOM is, by default, UTF-8(or ASCII) input stream.
  • Refer to tests/id_stat as an example processing UTF-16 file.
  • Revised the APIs manipulating ULS streams. Refer to the document 'ULS-ug.txt' in 'doc'.
  • Introduce a concept of 'TemplateULS', a token sequence with template variables.
  • This is mostly planed to be used as intermediate files for 'template classes'.
  • Support the representation of binary-numbers, like 0b0, 0b1, 0b1100, 0b1101.
  • More ulc-file examples in the 'ulc_exam', iso_c.ulc, cpp.ulc, csharp.ulc, ...
  • Used 'INHERIT:' directive to inherit existing lexical specification.
  • Changed the order of search path for ulc-files and the name of environment variable for it as 'ULC_PATH'.
  • Refer to the document 'ULS-ug.txt' in 'doc' for detail.
  • You don't have to specify unicode range in ID_CHARS, ID_FIRST_CHARS attributes in ulc-file to your country's letters for ID. By default, nearly all the letters over the world have been registered as characters consisting of ID. If there are additional unicode letters for ID, use the ID_CHARS, ID_FIRST_CHARS attributes in the ulc-file.
  • In Windows, provides a mechanism to change the default installation folder(C:\Program files\AbxWin) to what you want.

New in ULS 1.3.3 (Feb 13, 2013)

  • Added -p-option to specify the prefix of token name in the ulc file.
  • You can specify -p option like ulc2class -p TOK_
  • The token names of reserved tokens, TOK_ID, TOK_NUMBER, TOK_EOF, ..., are also changed into ID, NUMBER, EOF ...
  • If you are using the 'RENAME:' attribute like,
  • RENAME: TOK_ID IDENT change the above like this RENAME: ID IDENT
  • If there is a collision with token-name, especially for EOF when using the C-library, the name must be changed properly using the -p-option or 'RENAME:' attribute.
  • For example, you may add the following line into ulc-file.
  • RENAME: EOF EndOfFile
  • Can use size specifications for keyword(%k) and coordinate (%w) conversion specification,
  • like %9k and %-16w.
  • Add an overloaded method UlsCpp::Keyword() to retrieve the keyword string of current token.
  • Gives you the accurate position of the error in the message when it reads ulc-file.
  • Fixed a malfunction of case-insensitivity process of keywords.
  • A few bug fixes.