示例#1
0
import sys
import string
from collections import namedtuple

from machine import Context

STATE_OUT, STATE_USER, STATE_DOMAIN, STATE_DOMAIN_CONT, STATE_DOT, STATE_USER_DASH, STATE_DOM_DASH, STATE_END = range(7)

SMB_BEGIN = string.lowercase + string.digits + '_'
SMB_CONT = SMB_BEGIN + '-'
SMB_CONT_USER = SMB_CONT + '.'

cont = Context()

class email(namedtuple('email', ['user', 'domain'])):
    def __str__(self):
        return "username[%s] at domain[%s]" % (self.user, self.domain)

cont.state_noaction(STATE_OUT, (False, STATE_END))
cont.state_noaction(STATE_OUT, (string.whitespace, STATE_OUT))
@cont.state(STATE_OUT, (SMB_BEGIN, STATE_USER))
def handler(char, context):
    context.username = char

@cont.state(STATE_USER, (SMB_BEGIN, STATE_USER))
@cont.state(STATE_USER, ('-', STATE_USER_DASH))
def handler(char, context):
    context.username += char
cont.state_noaction(STATE_USER, ('@', STATE_DOMAIN))
cont.state_noaction(STATE_USER, (False, STATE_END))
示例#2
0
文件: conf2.py 项目: rrader/system-sw
import sys
import string
from collections import namedtuple

from machine import Context

STATE_OUT, STATE_SECTION_NAME, STATE_SECTION_NAME_FINISHED, STATE_INSIDE_SECTION, STATE_SECTION_VALUE, STATE_PROP_NAME, STATE_PROP_NAME_FINISHED, STATE_PROP_VALUE, STATE_PROP_VALUE_CONT, STATE_PROP_VALUE_QUOTED, STATE_PROP_VALUE_QUOTED_CONT = range(11)

SMB_BEGIN = string.lowercase + string.uppercase
SMB_CONT = SMB_BEGIN + string.digits + '_'

cont = Context()

# STATE_OUT
cont.state_noaction(STATE_OUT, (string.whitespace, STATE_OUT))
@cont.state(STATE_OUT, (SMB_BEGIN, STATE_SECTION_NAME))
def handler(char, context):
    context.sectionname = char
    context.sectionvalue = ''
    context.properties = []

# STATE_SECTION_NAME
cont.state_noaction(STATE_SECTION_NAME, (string.whitespace, STATE_SECTION_NAME_FINISHED))
@cont.state(STATE_SECTION_NAME, (SMB_CONT, STATE_SECTION_NAME))
def handler(char, context):
    context.sectionname += char

# STATE_SECTION_NAME_FINISHED
cont.state_noaction(STATE_SECTION_NAME_FINISHED, (string.whitespace, STATE_SECTION_NAME_FINISHED))
cont.state_noaction(STATE_SECTION_NAME_FINISHED, ('{', STATE_INSIDE_SECTION))
@cont.state(STATE_SECTION_NAME_FINISHED, (SMB_CONT, STATE_SECTION_VALUE))
示例#3
0
import sys
import string
from collections import namedtuple

from machine import Context

STATE_OUT, STATE_USER, STATE_DOMAIN, STATE_SUBDOMAIN, STATE_DOMAIN_CONT = range(5)

SMB_BEGIN = string.lowercase + string.digits + '_'
SMB_CONT = SMB_BEGIN + '-'
SMB_CONT_USER = SMB_CONT + '.'

cont = Context()

class email(namedtuple('email', ['user', 'domain'])):
    def __str__(self):
        return "username[%s] at domain[%s]" % (self.user, self.domain)

cont.state_noaction(STATE_OUT, (False, STATE_OUT))
@cont.state(STATE_OUT, (SMB_BEGIN, STATE_USER))
def handler(char, context):
    context.username = char

cont.state_noaction(STATE_USER, ('@', STATE_DOMAIN))
cont.state_noaction(STATE_USER, (False, STATE_OUT))
@cont.state(STATE_USER, (SMB_CONT_USER, STATE_USER))
def handler(char, context):
    context.username += char

@cont.state(STATE_DOMAIN, (SMB_BEGIN, STATE_DOMAIN_CONT))
def handler(char, context):