well since we dont have any specific information regarding predefined elements (except statement, digit and identifier) it becomes trickier.
also, since in psuedocode (im assumin thats what we're doing), carriage returns are used for separators, ive used # to represent a carriage return
pretest repetition = WHILE <condition> # <statement> # {<statement> #} END WHILE
condition = <identifier> <operator> (<identifier> | <value>)
operator = "=" | "<" | ">" | "<=" | ">="
(^^ note here that quotation marks are often used when defining symbols as reserved words, as to avoid confusion)
value = <digit> {<digit>}
and thats about it - ask if u need any more help
this is a simplified version, for example the condition definition could have repetition added on to the end, with logical operators, e.g. in the statement:
alive = true AND funny > 4 OR notfunny < 2