Difference between revisions of "NumML Language Reference"
| Line 17: | Line 17: | ||
;Unary Expression | ;Unary Expression | ||
:An expression such as <code>-10</code> or <code>-Sigma</code>. | :An expression such as <code>-10</code> or <code>-Sigma</code>. | ||
Constants, Identifiers and Unary Expressions comprise the set of '''terms'''. | |||
;Call Expression | ;Call Expression | ||
:A function name followed by a list of arguments enclosed in parentheses. The function name must be an identifier; the arguments can be either identifiers or | :A function name followed by a list of arguments enclosed in parentheses. The function name must be an identifier; the arguments can be either identifiers, constants or unary expressions. | ||
;Array | |||
Revision as of 17:37, 4 July 2025
What is NumML?
NumML is a small, domain-specific language (dsl) for coding SD models and configuring the UI of a Numerus WebKit (NWK) site. It is used in URAM models and in the Configuration Window. This document serves as reference for NWK authors and users wishing to use NumML in their designs.
NumML Operators
NumML uses Javascript syntax extended with 2 infix operators (@= and #=) that are not recognized as meaningful to Javascript. NWK uses a Javascript parser extended to accept these operators to analyze NumML code and respectively generate code or change the value of specific configuration parameters. Each NumML statement has the form:
LHS
@=RHS
LHS@#RHS
with slightly different rules for what is allowed on each side of the operator. In discussing NumML syntax we use the following terms:
- Constant
- Either a string constant enclosed in single or double quotes (
"SIR Model"",'Infection Stats') or a number in decimal (3.1415) or scientific notation (3.14159e5). - Identifier
- Equivalent of a Javascript variable such as
Sigma,N,beta, etc. - Unary Expression
- An expression such as
-10or-Sigma.
Constants, Identifiers and Unary Expressions comprise the set of terms.
- Call Expression
- A function name followed by a list of arguments enclosed in parentheses. The function name must be an identifier; the arguments can be either identifiers, constants or unary expressions.
- Array