| 1 | |
|---|
| 2 | from error import YAMLError |
|---|
| 3 | from reader import Reader |
|---|
| 4 | from scanner import Scanner |
|---|
| 5 | from parser import Parser |
|---|
| 6 | from composer import Composer |
|---|
| 7 | from resolver import Resolver |
|---|
| 8 | |
|---|
| 9 | from tokens import * |
|---|
| 10 | from events import * |
|---|
| 11 | |
|---|
| 12 | def scan(data, Reader=Reader, Scanner=Scanner): |
|---|
| 13 | reader = Reader(data) |
|---|
| 14 | scanner = Scanner(reader) |
|---|
| 15 | return iter(scanner) |
|---|
| 16 | |
|---|
| 17 | def parse(data, Reader=Reader, Scanner=Scanner, Parser=Parser): |
|---|
| 18 | reader = Reader(data) |
|---|
| 19 | scanner = Scanner(reader) |
|---|
| 20 | parser = Parser(scanner) |
|---|
| 21 | return iter(parser) |
|---|
| 22 | |
|---|
| 23 | def compose(data, Reader=Reader, Scanner=Scanner, Parser=Parser, |
|---|
| 24 | Composer=Composer): |
|---|
| 25 | reader = Reader(data) |
|---|
| 26 | scanner = Scanner(reader) |
|---|
| 27 | parser = Parser(scanner) |
|---|
| 28 | composer = Composer(parser) |
|---|
| 29 | return iter(composer) |
|---|
| 30 | |
|---|
| 31 | def compose_document(*args, **kwds): |
|---|
| 32 | try: |
|---|
| 33 | return compose(*args, **kwds).next() |
|---|
| 34 | except StopIteration: |
|---|
| 35 | return None |
|---|
| 36 | |
|---|
| 37 | def resolve(data, Reader=Reader, Scanner=Scanner, Parser=Parser, |
|---|
| 38 | Composer=Composer, Resolver=Resolver): |
|---|
| 39 | reader = Reader(data) |
|---|
| 40 | scanner = Scanner(reader) |
|---|
| 41 | parser = Parser(scanner) |
|---|
| 42 | composer = Composer(parser) |
|---|
| 43 | resolver = Resolver(composer) |
|---|
| 44 | return iter(resolver) |
|---|
| 45 | |
|---|
| 46 | def resolve_document(*args, **kwds): |
|---|
| 47 | try: |
|---|
| 48 | return resolve(*args, **kwds).next() |
|---|
| 49 | except StopIteration: |
|---|
| 50 | return None |
|---|
| 51 | |
|---|