# - - - R a n k . _ _ s c a n C o d e
def __scanCode ( self, scan ):
'''Process the rank code field.
[ scan is a Scan instance ->
if the line in scan starts with a valid code field ->
scan := scan advanced past that field
self.code := that code, blank-stripped
else ->
scan := scan advanced no further than end of line
Log() +:= error message(s)
raise SyntaxError ]
'''
For the length of the field, see Section 6.9, “L_RANK_CODE”. Right blanks are trimmed.
#-- 1 --
# [ if the line in scan has at least L_RANK_CODE
# characters ->
# scan := scan advanced by L_RANK_CODE
# rawCode := next L_RANK_CODE characters from scan
# else ->
# scan := scan advanced no further than end of line
# Log() +:= error message(s)
# raise SyntaxError ]
try:
rawCode = scan.move ( L_RANK_CODE )
except IndexError:
scan.syntax ( "Expecting the %d-character rank code." %
L_RANK_CODE )
#-- 2 --
self.code = rawCode.strip()