A parse instruction first specifies the string to be parsed. This can be any term, but is often taken simply from a variable. The term is followed by a template which describes how the string is to be split up, and where the pieces are to be put.
Parsing into wordsThe simplest form of parsing template consists of a list of variable names. The string being parsed is split up into words (sequences of characters separated by blanks), and each word from the string is assigned (copied) to the next variable in turn, from left to right. The final variable is treated specially in that it will be assigned a copy of whatever is left of the original string and may therefore contain several words. For example, in:
parse 'This is a sentence.' v1 v2 v3the variable v1 would be assigned the value This, v2 would be assigned the value is, and v3 would be assigned the value a sentence..
Literal patternsA literal string may be used in a template as a pattern to split up the string. For example
parse 'To be, or not to be?' w1 ',' w2 w3 w4would cause the string to be scanned for the comma, and then split at that point; each section is then treated in just the same way as the whole string was in the previous example.
Thus, w1 would be set to To be, w2 and w3 would be assigned the values or and not, and w4 would be assigned the remainder: to be?. Note that the pattern itself is not assigned to any variable.
The pattern may be specified as a variable, by putting the variable name in parentheses. The following instructions:
comma=',' parse 'To be, or not to be?' w1 (comma) w2 w3 w4therefore have the same effect as the previous example.
Positional patternsThe third kind of parsing mechanism is the numeric positional pattern. This allows strings to be parsed using column positions.
[previous | contents | next]