# -*- Mode: Python -*-

import sys
import Parsing

T = Parsing.Token
NT = Parsing.Nonterm

class t_from (T):
    "%token from [p1]"

class t_NAME (T):
    "%token NAME [p1]"

class t_as (T):
    "%token as [p1]"

class t_comma (T):
    "%token comma [p1]"

class t_lparen (T):
    "%token lparen [p1]"

class t_import (T):
    "%token import [p1]"

class t_rparen (T):
    "%token rparen [p1]"

class t_splat (T):
    "%token splat [p1]"

class t_dot (T):
    "%token dot [p1]"

class p1 (Parsing.Precedence):
    "%right p1"
class import_from_1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_1 dot [p1]"
    def r_1 (self, *args):
        "%reduce dot [p1]"
class import_from_4 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_4 dot [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_from_6 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_1 [p1]"
    def r_1 (self, *args):
        "%reduce import_from_4 NAME dotted_name_25 [p1]"
class import_from_9 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce splat [p1]"
    def r_1 (self, *args):
        "%reduce lparen NAME import_as_name_21 import_as_names_16 import_as_names_18 rparen [p1]"
class import_from_11 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_9 [p1]"
    def r_1 (self, *args):
        "%reduce NAME import_as_name_21 import_as_names_16 import_as_names_18 [p1]"
class import_from (NT):
    "%start"
    def r_0 (self, *args):
        "%reduce from import_from_6 import import_from_11 [p1]"
class import_as_names_16 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_as_names_16 comma NAME import_as_name_21 [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_as_names_18 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_as_name_21 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce as NAME [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dotted_name_25 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dotted_name_25 dot NAME [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"


spec = Parsing.Spec (sys.modules[__name__], skinny=False, logFile="g0.log", verbose=True)