Allow IPv6 address entry in tools>ping - Loosens valid character check
[tomato/davidwu.git] / release / src / router / dropbear / libtommath / tombc / grammar.txt
bloba780e759d66d5ec2e4178e1a47004dac9a930dbf
1 program       := program statement | statement | empty
2 statement     := { statement }                                                                              | 
3                  identifier = numexpression;                                                                | 
4                  identifier[numexpression] = numexpression;                                                 |
5                  function(expressionlist);                                                                  | 
6                  for (identifer = numexpression; numexpression; identifier = numexpression) { statement }   |
7                  while (numexpression) { statement }                                                        | 
8                  if (numexpresion) { statement } elif                                                       | 
9                  break;                                                                                     | 
10                  continue;                                                                                  
11                  
12 elif          := else statement | empty
13 function      := abs | countbits | exptmod | jacobi | print | isprime | nextprime | issquare | readinteger | exit
14 expressionlist := expressionlist, expression | expression
16 // LR(1) !!!?
17 expression    := string | numexpression
18 numexpression := cmpexpr && cmpexpr | cmpexpr \|\| cmpexpr | cmpexpr
19 cmpexpr       := boolexpr  < boolexpr | boolexpr  > boolexpr | boolexpr == boolexpr | 
20                  boolexpr <= boolexpr | boolexpr >= boolexpr | boolexpr
21 boolexpr      := shiftexpr & shiftexpr | shiftexpr ^ shiftexpr | shiftexpr \| shiftexpr | shiftexpr
22 shiftexpr     := addsubexpr << addsubexpr | addsubexpr >> addsubexpr | addsubexpr
23 addsubexpr    := mulexpr + mulexpr | mulexpr - mulexpr | mulexpr
24 mulexpr       := expr * expr       | expr / expr | expr % expr | expr
25 expr          := -nexpr | nexpr 
26 nexpr         := integer | identifier | ( numexpression ) | identifier[numexpression] 
28 identifier    := identifer digits | identifier alpha | alpha
29 alpha         := a ... z | A ... Z
30 integer       := hexnumber | digits 
31 hexnumber     := 0xhexdigits
32 hexdigits     := hexdigits hexdigit | hexdigit
33 hexdigit      := 0 ... 9 | a ... f | A ... F
34 digits        := digits digit | digit 
35 digit         := 0 ... 9