Mini Shell
# -*- coding: utf-8 -*-
from crossplane.analyzer import register_external_directives
from crossplane.lexer import register_external_lexer
from crossplane.parser import register_external_parser
from crossplane.builder import register_external_builder
class CrossplaneExtension(object):
directives = {}
def register_extension(self):
register_external_directives(directive=self.directives)
register_external_lexer(directives=self.directives, lexer=self.lex)
register_external_parser(directives=self.directives, parser=self.parse)
register_external_builder(directives=self.directives, builder=self.build)
def lex(self, token_iterator, directive):
raise NotImplementedError
def parse(self, stmt, parsing, tokens, ctx=(), consume=False):
raise NotImplementedError
def build(self, stmt, padding, state, indent=4, tabs=False):
raise NotImplementedError
Zerion Mini Shell 1.0