Changeset 44 for branches/pyyaml3000/lib/yaml/scanner.py
- Timestamp:
- 02/15/06 08:35:29 (7 years ago)
- File:
-
- 1 edited
-
branches/pyyaml3000/lib/yaml/scanner.py (modified) (26 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pyyaml3000/lib/yaml/scanner.py
r43 r44 23 23 self.end_marker = end_marker 24 24 25 class YAMLDirective(Token): 25 class DirectiveToken(Token): 26 pass 27 28 class YAMLDirectiveToken(DirectiveToken): 26 29 def __init__(self, major_version, minor_version, start_marker, end_marker): 27 30 self.major_version = major_version … … 30 33 self.end_marker = end_marker 31 34 32 class TagDirective (Token):33 pass 34 35 class ReservedDirective (Token):35 class TagDirectiveToken(DirectiveToken): 36 pass 37 38 class ReservedDirectiveToken(DirectiveToken): 36 39 def __init__(self, name, start_marker, end_marker): 37 40 self.name = name … … 39 42 self.end_marker = end_marker 40 43 41 class DocumentStart (Token):42 pass 43 44 class DocumentEnd (Token):45 pass 46 47 class End (Token):48 pass 49 50 class BlockSequenceStart (Token):51 pass 52 53 class BlockMappingStart (Token):54 pass 55 56 class BlockEnd (Token):57 pass 58 59 class FlowSequenceStart (Token):60 pass 61 62 class FlowMappingStart (Token):63 pass 64 65 class FlowSequenceEnd (Token):66 pass 67 68 class FlowMappingEnd (Token):69 pass 70 71 class Key (Token):72 pass 73 74 class Value (Token):75 pass 76 77 class Entry (Token):78 pass 79 80 class Alias (Token):44 class DocumentStartToken(Token): 45 pass 46 47 class DocumentEndToken(Token): 48 pass 49 50 class EndToken(Token): 51 pass 52 53 class BlockSequenceStartToken(Token): 54 pass 55 56 class BlockMappingStartToken(Token): 57 pass 58 59 class BlockEndToken(Token): 60 pass 61 62 class FlowSequenceStartToken(Token): 63 pass 64 65 class FlowMappingStartToken(Token): 66 pass 67 68 class FlowSequenceEndToken(Token): 69 pass 70 71 class FlowMappingEndToken(Token): 72 pass 73 74 class KeyToken(Token): 75 pass 76 77 class ValueToken(Token): 78 pass 79 80 class EntryToken(Token): 81 pass 82 83 class AliasToken(Token): 81 84 def __init__(self, value, start_marker, end_marker): 82 85 self.value = value … … 84 87 self.end_marker = end_marker 85 88 86 class Anchor (Token):89 class AnchorToken(Token): 87 90 def __init__(self, value, start_marker, end_marker): 88 91 self.value = value … … 90 93 self.end_marker = end_marker 91 94 92 class Tag (Token):95 class TagToken(Token): 93 96 def __init__(self, value, start_marker, end_marker): 94 97 self.value = value … … 96 99 self.end_marker = end_marker 97 100 98 class Scalar (Token):101 class ScalarToken(Token): 99 102 def __init__(self, value, plain, start_marker, end_marker): 100 103 self.value = value … … 380 383 marker = self.stream.get_marker() 381 384 self.indent = self.indents.pop() 382 self.tokens.append(BlockEnd (marker, marker))385 self.tokens.append(BlockEndToken(marker, marker)) 383 386 384 387 def add_indent(self, column): … … 405 408 406 409 # Add END. 407 self.tokens.append(End (marker, marker))410 self.tokens.append(EndToken(marker, marker)) 408 411 409 412 # The stream is ended. … … 423 426 424 427 def fetch_document_start(self): 425 self.fetch_document_indicator(DocumentStart )428 self.fetch_document_indicator(DocumentStartToken) 426 429 427 430 def fetch_document_end(self): 428 self.fetch_document_indicator(DocumentEnd )431 self.fetch_document_indicator(DocumentEndToken) 429 432 430 433 def fetch_document_indicator(self, TokenClass): … … 445 448 446 449 def fetch_flow_sequence_start(self): 447 self.fetch_flow_collection_start(FlowSequenceStart )450 self.fetch_flow_collection_start(FlowSequenceStartToken) 448 451 449 452 def fetch_flow_mapping_start(self): 450 self.fetch_flow_collection_start(FlowMappingStart )453 self.fetch_flow_collection_start(FlowMappingStartToken) 451 454 452 455 def fetch_flow_collection_start(self, TokenClass): 456 457 # '[' and '{' may start a simple key. 458 self.save_possible_simple_key() 453 459 454 460 # Increase the flow level. 455 461 self.flow_level += 1 456 457 # '[' and '{' may start a simple key.458 self.save_possible_simple_key()459 462 460 463 # Simple keys are allowed after '[' and '{'. … … 468 471 469 472 def fetch_flow_sequence_end(self): 470 self.fetch_flow_collection_end(FlowSequenceEnd )473 self.fetch_flow_collection_end(FlowSequenceEndToken) 471 474 472 475 def fetch_flow_mapping_end(self): 473 self.fetch_flow_collection_end(FlowMappingEnd )476 self.fetch_flow_collection_end(FlowMappingEndToken) 474 477 475 478 def fetch_flow_collection_end(self, TokenClass): … … 502 505 if self.add_indent(self.stream.column): 503 506 marker = self.stream.get_marker() 504 self.tokens.append(BlockSequenceStart (marker, marker))507 self.tokens.append(BlockSequenceStartToken(marker, marker)) 505 508 506 509 # Simple keys are allowed after '-' and ','. … … 514 517 self.stream.read() 515 518 end_marker = self.stream.get_marker() 516 self.tokens.append(Entry (start_marker, end_marker))519 self.tokens.append(EntryToken(start_marker, end_marker)) 517 520 518 521 def fetch_key(self): … … 528 531 if self.add_indent(self.stream.column): 529 532 marker = self.stream.get_marker() 530 self.tokens.append(BlockMappingStart (marker, marker))533 self.tokens.append(BlockMappingStartToken(marker, marker)) 531 534 532 535 # Simple keys are allowed after '?' in the block context. … … 540 543 self.stream.read() 541 544 end_marker = self.stream.get_marker() 542 self.tokens.append(Key (start_marker, end_marker))545 self.tokens.append(KeyToken(start_marker, end_marker)) 543 546 544 547 def fetch_value(self): … … 551 554 del self.possible_simple_keys[self.flow_level] 552 555 self.tokens.insert(key.token_number-self.tokens_taken, 553 Key (key.marker, key.marker))556 KeyToken(key.marker, key.marker)) 554 557 555 558 # If this key starts a new block mapping, we need to add … … 558 561 if self.add_indent(key.column): 559 562 self.tokens.insert(key.token_number-self.tokens_taken, 560 BlockMappingStart (key.marker, key.marker))563 BlockMappingStartToken(key.marker, key.marker)) 561 564 562 565 # There cannot be two simple keys one after another. … … 576 579 self.stream.read() 577 580 end_marker = self.stream.get_marker() 578 self.tokens.append(Value (start_marker, end_marker))581 self.tokens.append(ValueToken(start_marker, end_marker)) 579 582 580 583 def fetch_alias(self): … … 587 590 588 591 # Scan and add ALIAS. 589 self.scan_anchor(Alias )592 self.scan_anchor(AliasToken) 590 593 591 594 def fetch_anchor(self): … … 598 601 599 602 # Scan and add ANCHOR. 600 self.scan_anchor(Anchor )603 self.scan_anchor(AnchorToken) 601 604 602 605 def fetch_tag(self): … … 739 742 marker = self.stream.get_marker() 740 743 if self.stream.peek(5) == u'%YAML ': 741 self.tokens.append(YAMLDirective (1, 1, marker, marker))744 self.tokens.append(YAMLDirectiveToken(1, 1, marker, marker)) 742 745 elif self.stream.peek(4) == u'%TAG ': 743 self.tokens.append(TagDirective (marker, marker))746 self.tokens.append(TagDirectiveToken(marker, marker)) 744 747 else: 745 self.tokens.append(ReservedDirective ('', marker, marker))748 self.tokens.append(ReservedDirectiveToken('', marker, marker)) 746 749 while self.stream.peek() not in u'\0\r\n': 747 750 self.stream.read() … … 760 763 self.stream.read() 761 764 end_marker = self.stream.get_marker() 762 self.tokens.append(Tag ('', start_marker, end_marker))765 self.tokens.append(TagToken('', start_marker, end_marker)) 763 766 764 767 def scan_block_scalar(self, folded): … … 768 771 indent = 1 769 772 while True: 770 while self.stream.peek() and self.stream.peek() and self.stream.peek() not in u'\0\r\n ':773 while self.stream.peek() and self.stream.peek() and self.stream.peek() not in u'\0\r\n\x85\u2028\u2029': 771 774 self.stream.read() 772 775 if self.stream.peek() != u'\0': … … 776 779 self.stream.read() 777 780 count += 1 778 if count < indent and self.stream.peek() not in u'#\r\n ':781 if count < indent and self.stream.peek() not in u'#\r\n\x85\u2028\u2029': 779 782 break 780 self.tokens.append(Scalar ('', False, start_marker, start_marker))783 self.tokens.append(ScalarToken('', False, start_marker, start_marker)) 781 784 782 785 def scan_flow_scalar(self, double): … … 791 794 self.stream.read(1) 792 795 self.stream.read(1) 793 self.tokens.append(Scalar ('', False, marker, marker))796 self.tokens.append(ScalarToken('', False, marker, marker)) 794 797 795 798 def scan_plain(self): … … 823 826 break 824 827 space = True 825 self.tokens.append(Scalar ('', True, marker, marker))828 self.tokens.append(ScalarToken('', True, marker, marker)) 826 829 827 830 def invalid_token(self):
Note: See TracChangeset
for help on using the changeset viewer.
