Adobe Source Libraries 1.49.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
Expression Language

Underlying the language for Adam and Eve is a common, simple, expression language. The language supports

expression = or_expression ["?" expression ":" expression].
or_expression = and_expression { "||" and_expression }.
and_expression = bitwise_or_expression { "&&" bitwise_or_expression }.
bitwise_or_expression = bitwise_xor_expression { "|" bitwise_xor_expression }.
bitwise_xor_expression = bitwise_and_expression { "^" bitwise_and_expression }.
bitwise_and_expression = equality_expression { "&" equality_expression }.
equality_expression = relational_expression { ("==" | "!=") relational_expression }.
relational_expression = bitshift_expression { ("<" | ">" | "<=" | ">=") bitshift_expression }.
bitshift_expression = additive_expression { ("<<" | ">>") additive_expression }.
additive_expression = multiplicative_expression { ("+" | "-") multiplicative_expression }.
multiplicative_expression = unary_expression { ("*" | "/" | "%") unary_expression }.
unary_expression = postfix_expression | (unary_operator unary_expression).
unary_operator = "+" | "-" | "!" | "~".
postfix_expression = primary_expression { ("[" expression "]") | ("." identifier) }.
primary_expression = name | number | boolean | string | "empty" | array | dictionary
| variable_or_fuction | ( "(" expression ")" ).
variable_or_function = identifier ["(" [argument_expression_list] ")"].
array = "[" [argument_list] "]".
dictionary = "{" [named_argument_list] "}".
argument_expression_list = named_argument_list | argument_list.
argument_list = expression { "," expression }.
named_argument_list = named_argument { "," named_argument }.
named_argument = identifier ":" expression.
name = "@" (identifier | keyword).
boolean = "true" | "false".