Releases: Mathics3/mathics-scanner
2.0.0
Supports Python 3.13. Python 3.8 and 3.9 support has been dropped.
Note: There are incompatible changes. Use with Mathics-core 9.0.0 or greater.
Support for saving token position information was started. This is in module mathics_scanner.location. Additional location information is saved when mathics_scanner.location.TRACK_LOCATIONS is set to True.
Scanning was revised to handle more kinds of escape sequences and to be sensitive to their placement inside and outside a string. This is in module mathics_scanner.escape_sequences.
Tokenization support for Box Input operator \* was added.
Small YML changes were made to reflect a better understanding of boxing operators. In particular, \* is not a (prefix) operator.
Internals
Mathics3 scanner exceptions of class TranslateError are incompatible with previous versions, and now store error parameters, "name", "tag", and "args".
Bugs Fixed
1.4.1
1.4.0
A new operator table, operators.yml was added to contain operator information. This information is based on information from Robert Jacobson.
See https://github.com/WLTools/LanguageSpec/blob/master/docs/Specification/Syntax/Operator%20Table.csv
From operators.yml, operators.json is created, and this holds operator information that the Mathics3 Kernel uses.
Things like operator precedence, operator arity, associativity, and AMSLaTeX equivalent notation are some of the information we store.
All of the 100 or so Unicode operators without an initial built-in meaning, .e.g., [Cup], [Cap], ... have been added.
The tokenizer and parser in the Mathics3 Kernel use more YAML table information via JSON extraction. However, more will be done in the future.
A new utility program, mathics3-tokens can be used to show tokenization of an input stream, with the -C or --CodeTokenize option, the program shows the tokens more closely in the form that the WMA CodeTokens package uses. Over time, we expect that our tokenizer will be more compliant with CodeTokens.
named-characters.yml was gone over, mostly to fill out information, such as URL links to Unicode pages.
Operator precedence values have been gone over.
Merge pull request #66 from Mathics3/release-1.3.1
Python 3.8 is now the minimum Python supported. Python 3.12 supported.
Various dependencies elsewhere force 3.8 or newer.
- Packaging was redone to be able to support Python 3.12.
- Files now follow current Python black formatting and isort import ordering
- Some Python code linting
Too late for Valentines Day
- Add escape-code sequence for 32-bit Unicode. Issue #48.
- Correct
InfixandTildecharacter symbols - Support double backslash (
\\) as a single backslash character (\). - Correct Unicode for ScriptN and ScriptCaptialN
- Correct a number of is-letter-like entries.
- Accept \u21A6 as symbol for Function.
- Change the precedence of
|->(Functionsymbol) to 800 so it isn't interpreted as a|
followed by-> - ASCII operator tables can now be generated
- Add DifferentialD and Integrate even though we don't have a full set of prefix operators.
- more precedence values added to operators
- Python 3.11 operation verified
1.2.4
This time, for sure!
Redo for packaging problems.
Many thanks to Victor the packager for AUR for pointing this out.