Skip to content

Releases: Mathics3/FoxySheep2

1.2.3

05 Sep 14:03
Compare
Choose a tag to compare
  • Add Comparisions (==, <=, <, >, >=). And this allow us to:
  • Start evaluation testing using numpy mode
  • Add mma examples from mockmma
  • First cut at Set[]
  • Add factorial (!) and "scipy" mode
  • Handle all Greek letters and identifiers with Greek letters
  • Start Mathematica library in Python

1.2.2

03 Aug 18:41
Compare
Choose a tag to compare
  • in foxy-sheep:
    • Start output modes --output=numpy and --output=sympy
    • Add file reader --file and add StackExchance Mathematica example
    • In/Out indexing is 1 origin now
    • Range[...] now is list(range(...))
  • Handle the simplest form of Table[] with range - it is a list comprehension
  • Handle fullform function equivalents like Plus[] and Times[]
  • Fill in many more trigonomentric functions and add I variable.

1.2.1

02 Aug 18:27
Compare
Choose a tag to compare

1.2.0

29 Jul 02:40
Compare
Choose a tag to compare

Start saving state in REPL so % works

Revise pretty printer to include specific transformation names. For example:

$ foxy-sheep --tree=compact -e "3 (4+5)"
(<prog:Prog>  (<expr:Times>  (<expr:Number>  (<numberLiteral:NumberBaseTen>  '3')) (<expr:Parentheses>  '(' (<expr:PlusOp>  (<expr:Number>  (<numberLiteral:NumberBaseTen>  '4')) '+' (<expr:Number>  (<numberLiteral:NumberBaseTen>  '5'))) ')')))
Times[3,Plus[4,5]]

$ foxy-sheep --tree=full -e "3 (4+5)"
<prog:Prog> [1]
  <expr:Times> [2]
    0. <expr:Number> [1]
      <numberLiteral:NumberBaseTen> [1]
        '3'

    1. <expr:Parentheses> [3]
      '('

      1. <expr:PlusOp> [3]
        0. <expr:Number> [1]
          <numberLiteral:NumberBaseTen> [1]
            '4'

        1. '+'

        2. <expr:Number> [1]
          <numberLiteral:NumberBaseTen> [1]
            '5'

      1. ')'

Times[3,Plus[4,5]]

Compare with 1.1.0 shown in those release notes.

We now translate lists, and a few function names, namely GCD and Sin. Right now full coverage isn't as important as trying to get the framework correct.

Some bugs were fixed.

1.1.0

24 Jul 00:24
Compare
Choose a tag to compare

The main thrust here has been to start a translator to Python.
This is option -o python. There is a lot of low hanging fruit left to be picked.

We've added a number of options to the foxy-sheep command, aside from -o python. We've added showing the parse trees in two formats: --tree=compact and --tree=full. The former is for short expressions that aren't too complicated in nesting. The latter pretty prints the tree, indenting levels of nesting, numbers children and numbers children.

Examples

$ foxy-sheep --tree=compact -e "3 (4+5)"
(prog (expr (expr (numberLiteral '3')) (expr '(' (expr (expr (numberLiteral '4')) '+' (expr (numberLiteral '5'))) ')')))
Times[3,Plus[4,5]]
$ foxy-sheep --tree=full -e "3 (4+5)"
0. prog[1]
  0. expr[2]
    0. expr[1]
      0. numberLiteral[1]
        '3'

    1. expr[3]
      '('

      1. expr[3]
        0. expr[1]
          0. numberLiteral[1]
            '4'

        1. '+'

        2. expr[1]
          0. numberLiteral[1]
            '5'

      1. ')'

Times[3,Plus[4,5]]
(prog (expr (expr (numberLiteral '3')) (expr '(' (expr (expr (numberLiteral '4')) '+' (expr (numberLiteral '5'))) ')')))
Times[3,Plus[4,5]]

Tests have been expanded and reorganized. We now use TravisCI for testing.

In all of the above bit more code reorganization was done so as to make this look more like a Python project. Recall this was part of a larger Python + Java project. As such it used Python-compatible but Java-like conventions. Some of that is still there, just less of it. And more Python-centric features are now used.

One Oh!

15 Jul 22:11
Compare
Choose a tag to compare

First PyPI Release!

This release is to bring to a wider audience Robert Jacobson's excellent FoxyParser for Mathematica.

We've removed the Java code and focused on Python packaging. Some code reorganization has been done.

A simple command-line utility called foxy-sheep has been added which will convert Mathematica InputForm to Mathematica FullForm without having Mathematica installed. To get help on that run foxy-sheep --help.

In the long term I hope to add translation to various CAS's like sage, SciPy, Axiom, Maxima, etc. Because internally there is a parse tree, I expect more sophisticated semantic analysis will be done.