view libtommath/tombc/grammar.txt @ 1289:a23386821e9f

Add -c <command> option to force a specific command This change adds a -c option to dropbear, to force the session to use a specific command, in a similar fashion to OpenSSH's ForceCommand configuration option. This is useful to provide a simple fixed service over ssh, without requiring an authorized key file for the per-key forced_command option. This setting takes precedence over the channel session's provided command, and the per-key forced_command setting. Signed-off-by: Jeremy Kerr <[email protected]>
author Jeremy Kerr <jk@ozlabs.org>
date Tue, 12 Apr 2016 21:01:08 +0800
parents eed26cff980b
children
line wrap: on
line source

program       := program statement | statement | empty
statement     := { statement }                                                                              | 
                 identifier = numexpression;                                                                | 
                 identifier[numexpression] = numexpression;                                                 |
                 function(expressionlist);                                                                  | 
                 for (identifer = numexpression; numexpression; identifier = numexpression) { statement }   |
                 while (numexpression) { statement }                                                        | 
                 if (numexpresion) { statement } elif                                                       | 
                 break;                                                                                     | 
                 continue;                                                                                  
                 
elif          := else statement | empty
function      := abs | countbits | exptmod | jacobi | print | isprime | nextprime | issquare | readinteger | exit
expressionlist := expressionlist, expression | expression

// LR(1) !!!?
expression    := string | numexpression
numexpression := cmpexpr && cmpexpr | cmpexpr \|\| cmpexpr | cmpexpr
cmpexpr       := boolexpr  < boolexpr | boolexpr  > boolexpr | boolexpr == boolexpr | 
                 boolexpr <= boolexpr | boolexpr >= boolexpr | boolexpr
boolexpr      := shiftexpr & shiftexpr | shiftexpr ^ shiftexpr | shiftexpr \| shiftexpr | shiftexpr
shiftexpr     := addsubexpr << addsubexpr | addsubexpr >> addsubexpr | addsubexpr
addsubexpr    := mulexpr + mulexpr | mulexpr - mulexpr | mulexpr
mulexpr       := expr * expr       | expr / expr | expr % expr | expr
expr          := -nexpr | nexpr 
nexpr         := integer | identifier | ( numexpression ) | identifier[numexpression] 

identifier    := identifer digits | identifier alpha | alpha
alpha         := a ... z | A ... Z
integer       := hexnumber | digits 
hexnumber     := 0xhexdigits
hexdigits     := hexdigits hexdigit | hexdigit
hexdigit      := 0 ... 9 | a ... f | A ... F
digits        := digits digit | digit 
digit         := 0 ... 9