help/en/hlp_eval.txt
author Myhailo Danylenko <isbear@ukrpost.net>
Tue, 10 Nov 2009 19:36:54 +0200
changeset 1 320e4393785a
parent 0 7707b26e82fd
child 4 faaed3ae3fa8
permissions -rw-r--r--
Parentheses now have no restrictions in strings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
 /EVAL [expression]
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
Evaluates expression and executes result string as command.
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
Expression evaluation rules:
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
* all operators have the same precedence;
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
* supported operators:
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
  . string concatenation
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
  + binary plus / string concatenation
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
  - binary minus
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
  * multiplication / string replication
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
  / division
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
  % division remain
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
  < binary / string less than
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
  > binary / string greater than
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
  = binary / string equality
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
* strings must be quoted with double quotes ("..."), within string backslash is used for character escaping (\\ and \" are only useful applications);
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
* parentheses can be used to change operators precedence, nested parentheses are supported as long as they are balanced;
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
* numbers can be specified as plain decimal numbers, minus in front of digit will be recognized as a part of number;
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
* mcabber variables can be specified by name, though only subset of possible names is suppoted:
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
  - variable must start from latin alphabetic symbol;
1
320e4393785a Parentheses now have no restrictions in strings
Myhailo Danylenko <isbear@ukrpost.net>
parents: 0
diff changeset
    22
  - inside of variable name also are allowed digits, - and _;
320e4393785a Parentheses now have no restrictions in strings
Myhailo Danylenko <isbear@ukrpost.net>
parents: 0
diff changeset
    23
* to enable parentheses in character strings current implementation ignores anything after extra closing paren - you may use this as a sort of comment...
0
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
Example:
7707b26e82fd Initial commit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
 /eval "echo 2 + 2 = " . (2+2)
1
320e4393785a Parentheses now have no restrictions in strings
Myhailo Danylenko <isbear@ukrpost.net>
parents: 0
diff changeset
    27
 /eval "set ping_interval = " . (ping_interval + 1)    ) this example probably should use /let command.