JavaScript must be enabled in order for you to use JSXGraph and JSXGraph reference. However, it seems JavaScript is either disabled or not supported by your browser.

Class Index | File Index

Elements
Classes

Namespace JXG.PrefixParser


      ↳ JXG.PrefixParser



Defined in: prefix.js.

Namespace Summary
Constructor Attributes Constructor Name and Description
 
Prefix expression parser, i.e.
Method Summary
Method Attributes Method Name and Description
<static>  
JXG.PrefixParser.dimension(term)
Determine the dimension of the resulting value, i.e.
<private> <static>  
JXG.PrefixParser.getParents(term)
Determine parent elements of a prefix expression.
<static>  
JXG.PrefixParser.parse(term, action)
Parse a prefix expression and apply an action.
<static>  
JXG.PrefixParser.toPrefix(term)
Convert a prefix expression into a new prefix expression in which JSXGraph elements have been replaced by their ids.
Namespace Detail
JXG.PrefixParser
Prefix expression parser, i.e. a poor man's parser. This is a simple prefix parser for measurements and expressions of measurements, see Measurement. An expression is given as
  • array starting with an operator as first element, followed by one or more operands,
  • number.

Possible operators are:

  • '+', '-', '*', '/': binary operators
  • 'Area', 'Radius', 'Value', 'V', 'L': arbitrary methods of JSXGraph elements, supplied as strings.
  • 'exec': call a function

Possible operands are:

  • numbers
  • strings
  • JSXGraph elements in case the operator is a method. Example: ['Area', circle] calls the method circle.Area().
  • prefix expressions (for binary operators)
  • 'exec': call functions. Example: ['exec', 'sin', ['V', slider]] computes 'Math.sin(slider.Value())'. As functions only functions in Math or JXG.Math are allowed.
Examples:
  ['+', 100, 200]
var p1 = board.create('point', [1, 1]);
var p2 = board.create('point', [1, 3]);
var seg = board.create('segment', [[-2,-3], [-2, 3]]);

// Valid prefix expression: ['L', seg]
var p1 = board.create('point', [1, 1]);
var p2 = board.create('point', [1, 3]);
var seg = board.create('segment', [[-2,-3], [-2, 3]]);
var ci = board.create('circle', [p1, 7]);

// Valid prefix expression:  ['+', ['Radius', ci], ['L', seg]]
var ang = board.create('angle', [[4, 0], [0, 0], [2, 2]]);
// Valid prefix expression:  ['V', ang, 'degrees']);
Method Detail
<static> JXG.PrefixParser.dimension(term)
Determine the dimension of the resulting value, i.e. ['L', obj] as well as ['+', ['L', obj1], ['L', obj2]] have dimension 1.

['+', ['Area', obj1], ['L', obj2]] will retrun NaN, because the two operands have conflicting dimensions.

If an element is a measurement element, then it's dimension can be set as attribute. This overrules the computed dimension.

Parameters:
{Array|Number} term
Prefix expression
Returns:
Number

<private> <static> JXG.PrefixParser.getParents(term)
Determine parent elements of a prefix expression.
Parameters:
{Array|Number} term
prefix expression
Returns:
Array

<static> {Number} JXG.PrefixParser.parse(term, action)
Parse a prefix expression and apply an action.
Parameters:
{array|number} term
Expression
{String} action
Determines what to do. So far, the only action available is 'execute', which evaluates the expression.
Returns:
{Number} What ever the action does.

<static> {Array|Number} JXG.PrefixParser.toPrefix(term)
Convert a prefix expression into a new prefix expression in which JSXGraph elements have been replaced by their ids.
Parameters:
{Array|Number} term
Returns:
{Array|Number}

Documentation generated by JsDoc Toolkit 2.4.0 on Fri Jan 26 2024 08:47:42 GMT+0100 (Mitteleuropäische Normalzeit)