Example #1
0
from helpers import define

p_whitespace = define("""whitespace : SPACES \n| TABS""")
p_indent = define("""indent : TABS \n|""", default='')
p_breakable = define("""breakable : whitespace \n| EOL""")
p_w = define("""w : whitespace w \n|""", default='')
p_b = define("""b : breakable b \n|""", set=False)
p_c = define("""c : b ',' b \n| b""", set=False)
Example #2
0
from helpers import define
from cm.nodes import Naked, Line

def p_noStartB(p):
    """
    noStartB : SPACES \n| TABS  \n| NIL \n| ESCAPEE \n| NAME \n| INT \n| FLOAT
             | STRING \n| OTHER \n| ',' \n| '('     \n| ')'  \n| '{' \n| '}'
             | '+'    \n| '-'   \n| '/' \n| '>'     \n| '='  \n| '[' \n| RAW
             | RAW4
    """
    p[0] = p[1]

p_part = define("""part : inelement \n| insection \n| function""")
p_linepart = define("""linepart : elemline \n| fnline \n| secline \n| naked""")
p_noStart = define("""noStart : noStartB \n| ']'""")

def p_inline(p):
    """inline : part inline \n| noStartB inline \n|"""
    if len(p) is 1:
        p[0] = Naked()
    elif isinstance(p[2], Naked):
        p[2].insert(p[1])
        p[0] = p[2]
    else:
        p[0] = Naked(p[1], p[2])

def p_naked(p):
    """naked : noStart linepart \n|"""
    if len(p) is 1:
        p[0] = Naked()
    elif isinstance(p[2], Naked):