Adding name and file stacks and layer naming
- Name and kll filenames are treated as special variables - Using the order of the stacks the compilation order can be inferred (useful for debugging) - Layer names are finally implemented (instead of Layer 1, Layer 2, etc.)
This commit is contained in:
parent
0cb66411aa
commit
5696fc5dfb
@ -100,8 +100,21 @@ class Backend:
|
||||
else:
|
||||
gitChangesStr = " None\n"
|
||||
|
||||
# Prepare BaseLayout and Layer Info
|
||||
baseLayoutInfo = ""
|
||||
defaultLayerInfo = ""
|
||||
partialLayersInfo = ""
|
||||
for file, name in zip( variables.baseLayout['*LayerFiles'], variables.baseLayout['*NameStack'] ):
|
||||
baseLayoutInfo += "// {0}\n// {1}\n".format( name, file )
|
||||
for file, name in zip( variables.layerVariables[0]['*LayerFiles'], variables.layerVariables[0]['*NameStack'] ):
|
||||
defaultLayerInfo += "// {0}\n// {1}\n".format( name, file )
|
||||
for layer in range( 1, len( variables.layerVariables ) ):
|
||||
partialLayersInfo += "// Layer {0}\n".format( layer )
|
||||
for file, name in zip( variables.layerVariables[ layer ]['*LayerFiles'], variables.layerVariables[ layer ]['*NameStack'] ):
|
||||
partialLayersInfo += "// {0}\n// {1}\n".format( name, file )
|
||||
|
||||
|
||||
## Information ##
|
||||
# TODO
|
||||
self.fill_dict['Information'] = "// This file was generated by the kll compiler, DO NOT EDIT.\n"
|
||||
self.fill_dict['Information'] += "// Generation Date: {0}\n".format( date.today() )
|
||||
self.fill_dict['Information'] += "// KLL Backend: {0}\n".format( "kiibohd" )
|
||||
@ -109,9 +122,9 @@ class Backend:
|
||||
self.fill_dict['Information'] += "// KLL Git Changes:{0}".format( gitChangesStr )
|
||||
self.fill_dict['Information'] += "// Compiler arguments:\n{0}".format( compilerArgs )
|
||||
self.fill_dict['Information'] += "//\n"
|
||||
self.fill_dict['Information'] += "// - Base Layer -\n"
|
||||
self.fill_dict['Information'] += "// - Default Layer -\n"
|
||||
self.fill_dict['Information'] += "// - Partial Layers -\n"
|
||||
self.fill_dict['Information'] += "// - Base Layer -\n{0}".format( baseLayoutInfo )
|
||||
self.fill_dict['Information'] += "// - Default Layer -\n{0}".format( defaultLayerInfo )
|
||||
self.fill_dict['Information'] += "// - Partial Layers -\n{0}".format( partialLayersInfo )
|
||||
|
||||
|
||||
## Variable Information ##
|
||||
@ -304,12 +317,17 @@ class Backend:
|
||||
# Lookup first scancode in map
|
||||
firstScanCode = macros.firstScanCode[ layer ]
|
||||
|
||||
# Generate stacked name
|
||||
stackName = ""
|
||||
for name in range( 0, len( variables.layerVariables[ layer ]['*NameStack'] ) ):
|
||||
stackName += "{0} + ".format( variables.layerVariables[ layer ]['*NameStack'][ name ] )
|
||||
stackName = stackName[:-3]
|
||||
|
||||
# Default map is a special case, always the first index
|
||||
# TODO Fix names
|
||||
if layer == 0:
|
||||
self.fill_dict['LayerIndexList'] += '\tLayer_IN( default_scanMap, "DefaultMap", 0x{0:02X} ),\n'.format( firstScanCode )
|
||||
self.fill_dict['LayerIndexList'] += '\tLayer_IN( default_scanMap, "D: {1}", 0x{0:02X} ),\n'.format( firstScanCode, stackName )
|
||||
else:
|
||||
self.fill_dict['LayerIndexList'] += '\tLayer_IN( layer{0}_scanMap, "Layer {0}", 0x{1:02X} ),\n'.format( layer, firstScanCode )
|
||||
self.fill_dict['LayerIndexList'] += '\tLayer_IN( layer{0}_scanMap, "{0}: {2}", 0x{1:02X} ),\n'.format( layer, firstScanCode, stackName )
|
||||
self.fill_dict['LayerIndexList'] += "};"
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# KLL Compiler Containers
|
||||
#
|
||||
# Copyright (C) 2014 by Jacob Alexander
|
||||
# Copyright (C) 2014-2015 by Jacob Alexander
|
||||
#
|
||||
# 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
|
||||
@ -298,10 +298,16 @@ class Variables:
|
||||
|
||||
# If still processing BaseLayout
|
||||
if self.baseLayoutEnabled:
|
||||
self.baseLayout['*LayerFiles'] = name
|
||||
if '*LayerFiles' in self.baseLayout.keys():
|
||||
self.baseLayout['*LayerFiles'] += [ name ]
|
||||
else:
|
||||
self.baseLayout['*LayerFiles'] = [ name ]
|
||||
# Set for the current layer
|
||||
else:
|
||||
self.layerVariables[ self.currentLayer ]['*LayerFiles'] = name
|
||||
if '*LayerFiles' in self.layerVariables[ self.currentLayer ].keys():
|
||||
self.layerVariables[ self.currentLayer ]['*LayerFiles'] += [ name ]
|
||||
else:
|
||||
self.layerVariables[ self.currentLayer ]['*LayerFiles'] = [ name ]
|
||||
|
||||
def incrementLayer( self ):
|
||||
# Store using layer index
|
||||
@ -312,6 +318,21 @@ class Variables:
|
||||
# Overall set of variables
|
||||
self.overallVariables[ key ] = value
|
||||
|
||||
# The Name variable is a special accumulation case
|
||||
if key == 'Name':
|
||||
# BaseLayout still being processed
|
||||
if self.baseLayoutEnabled:
|
||||
if '*NameStack' in self.baseLayout.keys():
|
||||
self.baseLayout['*NameStack'] += [ value ]
|
||||
else:
|
||||
self.baseLayout['*NameStack'] = [ value ]
|
||||
# Layers
|
||||
else:
|
||||
if '*NameStack' in self.layerVariables[ self.currentLayer ].keys():
|
||||
self.layerVariables[ self.currentLayer ]['*NameStack'] += [ value ]
|
||||
else:
|
||||
self.layerVariables[ self.currentLayer ]['*NameStack'] = [ value ]
|
||||
|
||||
# If still processing BaseLayout
|
||||
if self.baseLayoutEnabled:
|
||||
self.baseLayout[ key ] = value
|
||||
|
Reference in New Issue
Block a user