Skip to content

Releases: dekarrin/fairyscript

Fixed bad MANIFEST.in

14 May 11:31
Compare
Choose a tag to compare
  • Updated MANIFEST.in to actually work with installing docx templated files

Added MANIFEST.in

14 May 11:15
Compare
Choose a tag to compare
  • Added a manifest.in file to have template.docx included in source distribution

Fixed bad PyPI config

14 May 10:17
Compare
Choose a tag to compare
  • Updated config to work with install via PyPI.
  • Changed README format to reStructuredText.
  • Fixed check for stdin filename when getting file to report lexer/parser errors in.

FairyScript

13 May 18:33
Compare
Choose a tag to compare

With version 2.0.0 comes a new name for the system. Due to the similarity between the name scrappy and the name of the immensely popular scraping library, scrapy, the name of the programming language was changed to "FairyScript" so that publishing to PyPI can be done with less ambiguity.

  • Argument Parsing
    • Rewrote entire argument parsing system to be in terms of subcommands instead of required options.
    • Renamed all argument names to be simpler, as they are now based on the subcommand.
    • Made input files into a top-level argument instead of a repeatable option.
  • Logging/Output System
    • Added new logging framework that all compiler messages must pass through.
    • All compiler messages are now sent to stderr.
    • Tweaked -q option to modify logging framework to show minimal output on stderr.
    • Added new option --logfile for logging all compiler messages regardless of verboseness level.
  • Documentation Updates
    • Compiler documentation now gives complete description of compiler use.
    • Added information to language documentation on how to use GFX bindings with Ren'Py.
    • Updated all references in the documentation from scrappy to FairyScript.
  • Additional Fixes/Enhancements
    • Rewrote test framework to be more robust and modular.
    • Added new --order option for ordering lists in static analysis output.
    • Fixed exception handling to catch all errors and log them.
    • Fixed lexer token output to be readable as .lex input.
    • Fixed a bug that caused the analysis module to overwrite data when character files were included.

Fixed indent regression

13 May 18:09
Compare
Choose a tag to compare
  • Fixed regression feature from 1.2.0 where each (SECTION) annotation would reset the indent. (SECTION) annotations not starting a new indent is by design; closing the section is accomplished with the (END) annotation.

Analysis Engine

13 May 18:07
Compare
Choose a tag to compare
  • Added a new "analysis" pseudo-compiler that can be used to perform basic static analysis on scripts. Currently, there is information on references/definitions of characters, scenes, and other external resource references, including statistics on counts and number of lines. The new mode can be invoked by passing --analyze to the scpcompile command, and will output plaintext format information (currently, when saving to file, the convention for this data is to use the extension .ana)
  • Made the indent level reset in Ren'Py output whenever a new (SECTION) annotation is encountered.
  • All input files are now fully parsed into a single AST/Symbol table before being further processed. This fixes a bug where each input file caused the Docx compiler to write to the same file, meaning that only the last input file specified would be seen in the final Docx file.
  • All newlines in strings are now converted to a single space during the lexing phase. This fixes a bug where Ren'Py output would include the newline in character dialogue lines, which resulted in invalid Ren'Py syntax.
  • Fixed a bug in Ren'Py and Docx compiler modules where (ELSE) annotations without a condition could be excluded from the output.
  • Completed code cleanup of Ren'Py and Docx compiler modules.

Better error reporting

13 May 18:06
Compare
Choose a tag to compare
  • Lexer and parser errors now give both the line number and file that they originated from.
  • scpcompile explicitly states that parsing/lexing failed after giving listing of errors
  • On failure, scpcompile will now return a non-zero exit code
  • Error messages are printed to stderr instead of to stdout
  • Error handling was refactored to take a more exception-based approach rather than a check-status approach
  • Removed 2.6 from list of supported pythons (at least 2.7 is required for the argparse module)

Bugfix: accurate line numbers

13 May 18:04
Compare
Choose a tag to compare

Previously, adding a new line while inside of certain keywords would cause line numbers to be incorrectly reported as far too low, which caused confusion in situations such as error reporting.

This release includes a series of patches to the lexer to enable it to tag symbols with proper line number information by analyzing the contents of applicable symbols for line advancement and feeding that information back into the state of the lexer.

Enabled Installation

13 May 18:02
Compare
Choose a tag to compare

Scrappy can now be fully installed on the system by using python setup.py install; previously, this resulted in a buggy install which did not include all components and would fail when it was executed.

Initial version

13 May 18:00
Compare
Choose a tag to compare

Full compatibility with most current versions of python, and project setup correct.