Exemplo n.º 1
0
def _parse_snippets_file(data, filename):
    """Parse 'data' assuming it is a snippet file. Yields events in the
    file."""

    python_globals = defaultdict(list)
    lines = LineIterator(data)
    current_priority = 0
    for line in lines:
        if not line.strip():
            continue

        head, tail = head_tail(line)
        if head in ("snippet", "global"):
            snippet = _handle_snippet_or_global(filename, line, lines,
                    python_globals, current_priority)
            if snippet is not None:
                yield snippet
        elif head == "extends":
            yield handle_extends(tail, lines.line_index)
        elif head == "clearsnippets":
            yield "clearsnippets", (current_priority, tail.split())
        elif head == "priority":
            try:
                current_priority = int(tail.split()[0])
            except (ValueError, IndexError):
                yield "error", ("Invalid priority %r" % tail, lines.line_index)
        elif head and not head.startswith('#'):
            yield "error", ("Invalid line %r" % line.rstrip(), lines.line_index)
Exemplo n.º 2
0
def _parse_snippets_file(data):
    """Parse 'data' assuming it is a snippet file. Yields events in the
    file."""

    python_globals = defaultdict(list)
    lines = LineIterator(data)
    current_priority = 0
    for line in lines:
        if not line.strip():
            continue

        head, tail = head_tail(line)
        if head in ("snippet", "global"):
            snippet = _handle_snippet_or_global(line, lines, python_globals,
                                                current_priority)
            if snippet is not None:
                yield snippet
        elif head == "extends":
            yield handle_extends(tail, lines.line_index)
        elif head == "clearsnippets":
            yield "clearsnippets", (tail.split(), )
        elif head == "priority":
            try:
                current_priority = int(tail.split()[0])
            except (ValueError, IndexError):
                yield "error", ("Invalid priority %r" % tail, lines.line_index)
        elif head and not head.startswith('#'):
            yield "error", ("Invalid line %r" % line.rstrip(),
                            lines.line_index)
Exemplo n.º 3
0
def _parse_snippets_file(data, filename):
    """Parse 'data' assuming it is a snippet file.

    Yields events in the file.

    """

    python_globals = defaultdict(list)
    lines = LineIterator(data)
    current_priority = 0
    for line in lines:
        if not line.strip():
            continue

        head, tail = head_tail(line)
        if head in ('snippet', 'global'):
            snippet = _handle_snippet_or_global(filename, line, lines,
                                                python_globals,
                                                current_priority)
            if snippet is not None:
                yield snippet
        elif head == 'extends':
            yield handle_extends(tail, lines.line_index)
        elif head == 'clearsnippets':
            yield 'clearsnippets', (current_priority, tail.split())
        elif head == 'priority':
            try:
                current_priority = int(tail.split()[0])
            except (ValueError, IndexError):
                yield 'error', ('Invalid priority %r' % tail, lines.line_index)
        elif head and not head.startswith('#'):
            yield 'error', ('Invalid line %r' % line.rstrip(),
                            lines.line_index)
Exemplo n.º 4
0
def _parse_snippets_file(data, filename):
    """Parse 'data' assuming it is a snippet file.

    Yields events in the file.

    """

    python_globals = defaultdict(list)
    lines = LineIterator(data)
    current_priority = 0
    actions = {}
    context = None
    for line in lines:
        if not line.strip():
            continue

        head, tail = head_tail(line)
        if head in ('snippet', 'global'):
            snippet = _handle_snippet_or_global(
                filename, line, lines,
                python_globals,
                current_priority,
                actions,
                context
            )

            actions = {}
            context = None
            if snippet is not None:
                yield snippet
        elif head == 'extends':
            yield handle_extends(tail, lines.line_index)
        elif head == 'clearsnippets':
            yield 'clearsnippets', (current_priority, tail.split())
        elif head == 'context':
            head, context, = handle_context(tail, lines.line_index)
            if head == 'error':
                yield (head, tail)
        elif head == 'priority':
            try:
                current_priority = int(tail.split()[0])
            except (ValueError, IndexError):
                yield 'error', ('Invalid priority %r' % tail, lines.line_index)
        elif head in ['pre_expand', 'post_expand', 'post_jump']:
            head, tail = handle_action(head, tail, lines.line_index)
            if head == 'error':
                yield (head, tail)
            else:
                actions[head], = tail
        elif head and not head.startswith('#'):
            yield 'error', ('Invalid line %r' % line.rstrip(), lines.line_index)
Exemplo n.º 5
0
def _parse_snippets_file(data, filename):
    """Parse 'data' assuming it is a .snippets file. Yields events in the
    file."""
    lines = LineIterator(data)
    for line in lines:
        if not line.strip():
            continue

        head, tail = head_tail(line)
        if head == "extends":
            yield handle_extends(tail, lines.line_index)
        elif head in "snippet":
            snippet = _parse_snippet(line, lines, filename)
            if snippet is not None:
                yield snippet
        elif head and not head.startswith('#'):
            yield "error", ("Invalid line %r" % line.rstrip(), lines.line_index)