diff options
Diffstat (limited to 'lib/yaml/__init__.py')
-rw-r--r-- | lib/yaml/__init__.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/yaml/__init__.py b/lib/yaml/__init__.py index cae7cde..f1fcf10 100644 --- a/lib/yaml/__init__.py +++ b/lib/yaml/__init__.py @@ -1,7 +1,10 @@ +from error import YAMLError from reader import Reader from scanner import Scanner from parser import Parser +from composer import Composer +from resolver import Resolver from tokens import * from events import * @@ -17,3 +20,32 @@ def parse(data, Reader=Reader, Scanner=Scanner, Parser=Parser): parser = Parser(scanner) return iter(parser) +def compose(data, Reader=Reader, Scanner=Scanner, Parser=Parser, + Composer=Composer): + reader = Reader(data) + scanner = Scanner(reader) + parser = Parser(scanner) + composer = Composer(parser) + return iter(composer) + +def compose_document(*args, **kwds): + try: + return compose(*args, **kwds).next() + except StopIteration: + return None + +def resolve(data, Reader=Reader, Scanner=Scanner, Parser=Parser, + Composer=Composer, Resolver=Resolver): + reader = Reader(data) + scanner = Scanner(reader) + parser = Parser(scanner) + composer = Composer(parser) + resolver = Resolver(composer) + return iter(resolver) + +def resolve_document(*args, **kwds): + try: + return resolve(*args, **kwds).next() + except StopIteration: + return None + |