# Path: kll/common/emitter.py
# class Emitter(object):
#     '''
#     KLL Emitter Base Class
# 
#     NOTE: Emitter should do as little as possible in the __init__ function.
#     '''
# 
#     def __init__(self, control):
#         '''
#         Emitter initialization
# 
#         @param control: ControlStage object, used to access data from other stages
#         '''
#         self.control = control
#         self.color = False
# 
#         # Signal erroring due to an issue
#         # We may not want to exit immediately as we could find other potential
#         # issues that need fixing
#         self.error_exit = False
# 
#     def command_line_args(self, args):
#         '''
#         Group parser for command line arguments
# 
#         @param args: Name space of processed arguments
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#                 .format(
#                         WARNING,
#                         self.command_line_args.__name__,
#                         type(self).__name__
#                 )
#         )
# 
#     def command_line_flags(self, parser):
#         '''
#         Group parser for command line options
# 
#         @param parser: argparse setup object
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.command_line_flags.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def process(self):
#         '''
#         Emitter Processing
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.process.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def output(self):
#         '''
#         Final Stage of Emitter
# 
#         Generate desired outputs
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.output.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def check(self):
#         '''
#         Determines whether or not we've successfully emitted.
#         '''
#         return not self.error_exit
# 
# class FileEmitter(object):
#     '''
#     KLL File Emitter Class
# 
#     Base class for any emitter that wants to output a file.
#     Generally, it is recommended to use the TextEmitter as templates are more readable.
#     '''
# 
#     def __init__(self):
#         '''
#         FileEmitter Initialization
#         '''
#         self.output_files = []
# 
#     def generate(self, output_path):
#         '''
#         Generate output file
# 
#         @param contents: String contents of file
#         @param output_path: Path to output file
#         '''
#         for name, contents in self.output_files:
#             with open("{0}/{1}".format(output_path, name), 'w') as outputFile:
#                 outputFile.write(contents)


import os
from kll.common.emitter import Emitter, FileEmitter
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.

### Imports ###





### Decorators ###

# Print Decorator Variables
ERROR = '\033[5;1;31mERROR\033[0m:'
WARNING = '\033[5;1;33mWARNING\033[0m:'



### Classes ###


# Path: kll/common/emitter.py
# class Emitter(object):
#     '''
#     KLL Emitter Base Class
# 
#     NOTE: Emitter should do as little as possible in the __init__ function.
#     '''
# 
#     def __init__(self, control):
#         '''
#         Emitter initialization
# 
#         @param control: ControlStage object, used to access data from other stages
#         '''
#         self.control = control
#         self.color = False
# 
#         # Signal erroring due to an issue
#         # We may not want to exit immediately as we could find other potential
#         # issues that need fixing
#         self.error_exit = False
# 
#     def command_line_args(self, args):
#         '''
#         Group parser for command line arguments
# 
#         @param args: Name space of processed arguments
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#                 .format(
#                         WARNING,
#                         self.command_line_args.__name__,
#                         type(self).__name__
#                 )
#         )
# 
#     def command_line_flags(self, parser):
#         '''
#         Group parser for command line options
# 
#         @param parser: argparse setup object
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.command_line_flags.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def process(self):
#         '''
#         Emitter Processing
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.process.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def output(self):
#         '''
#         Final Stage of Emitter
# 
#         Generate desired outputs
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.output.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def check(self):
#         '''
#         Determines whether or not we've successfully emitted.
#         '''
#         return not self.error_exit
# 
# class FileEmitter(object):
#     '''
#     KLL File Emitter Class
# 
#     Base class for any emitter that wants to output a file.
#     Generally, it is recommended to use the TextEmitter as templates are more readable.
#     '''
# 
#     def __init__(self):
#         '''
#         FileEmitter Initialization
#         '''
#         self.output_files = []
# 
#     def generate(self, output_path):
#         '''
#         Generate output file
# 
#         @param contents: String contents of file
#         @param output_path: Path to output file
#         '''
#         for name, contents in self.output_files:
#             with open("{0}/{1}".format(output_path, name), 'w') as outputFile:
#                 outputFile.write(contents)


# Path: kll/emitters/kll/kll.py
import os
from kll.common.emitter import Emitter, FileEmitter

#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.

### Imports ###





### Decorators ###

# Print Decorator Variables
ERROR = '\033[5;1;31mERROR\033[0m:'
WARNING = '\033[5;1;33mWARNING\033[0m:'



### Classes ###


class KLL(Emitter, FileEmitter):