The logic that parses a band prefix line is a static method of the
Prefix class. For remarks about why the
Prefix() constructor itself doesn't do the parsing, see
the parallel routine Section 19.11, “
BaseCompiler.scanPageHeader(): Process a page
# - - - B a s e C o m p i l e r . s c a n P r e f i x - - - def scanPrefix(self): '''Scan a new band prefix line. [ the line in self.scan is a band prefix line advanced just past the initial PREFIX_SYMBOL -> if the line in self.scan is a valid prefix line -> self.prefix := a new Prefix object that represents that line else -> Log() +:= error message(s) In any case -> self.scan := self.scan advanced no further than end of line ] '''
try: self.prefix = Prefix.scanLine(self.scan) except SyntaxError: pass