Skip to content
Ax Kr edited this page Dec 13, 2020 · 31 revisions

How can I interactively execute the Symja language?

  • two REPLs are available in the library a Console.java for standard math input and a MMAConsole.java for Mathematica like syntax input.

Where can I find the documentation of built-in functions in the repository?

  • you can find it in the /doc/functions folder
  • the language documentation can be found in the /doc folder

How can I define a new Symja built-in function name in Java?

  • add the new name to AST2Expr.FUNCTION_STRINGS
  • run the development tool FunctionIDGenerator and copy the generated source code to the file ID.java
  • run the development tool BuiltinGenerator and replace the corresponding section with the generated source code in the file S.java
  • if you like you can define Java "function stubs" for your function in the file F.java
  • if you plan to implement a bunch of new built-in functions you can open an issue and we create the corresponding templates for you.

Where are the built-in function implementations in Java?

Where are the main basic transformation rules defined?

Where are the parsers defined?

  • in package org.matheclipse.core.parser the main ExprParser class is implemented to transform an input string directly to an IExpr object
  • the basic parser structures are defined in package org.matheclipse.parser.client this Parser can be used on the client side without the whole Symja stuff. Inside Symja the AST2Expr class is used to transform the client side ASTNode into an IExpr.
  • all operators and their affix, associativity, and precedence are defined in the ASTNodeFactory class

Where is the structural pattern-matching implemented?

Where are the main JUnit tests located?

Clone this wiki locally