Soluling home   Document home

Parsers

Parser (sometimes called a scanner) is an object of Soluling that can read and write a specific file format. They are used in several situations, such as when reading original files and databases, when writing localized files and databases, when importing translations, and when reading glossaries. Some other localization tools might call parsers as scanners. Anyway, parsers and scanners are the same things. There are one or more parsers for each file and database formats that Soluling supports. Soluling's parsers are all statically linked into the executable file (Soluling.exe or SoluMake.exe). Whenever we implement a new parser, we will also compile new executables. To take a new parser in use, just run the automatic update that will download the new executables and replaces the current ones.

Nested data

In many cases, a file or database contains embedded data that uses a different format than the main file. For example, you might have an HTML file that contains a script element having JavaScript code. The main file contains HTML, but the script element contains code. There are two formats involved, and Soluling can use two parsers: first, HTML parser to parse the HTML file and then source code parser to parse the script file. This parser nesting works with structured file formats and databases. The formats can be very deeply nested. It works even on a very hypothetical sample where you have some XML data in your database, and this XML data contains an element having binary JSON. This JSON contains an element having source code. First, Soluling uses a database parser to parse the database. Then for XML data it uses XML parser. Then it decodes the base64 encoded binary JSON into JSON and uses a JSON parser to parse the data. Finally, it uses a source code parser to parse source code data. The complete nested structure of your database and its sub-items (XML, JSON, and source code) can be seen on the project tree. When each element is selected, Soluling shows the selected content visually, if possible.