def make_sysCode_number( token ):
return make_hidCode_number( 'SysCode', token )
+ # Replace key-word with None specifier (which indicates a noneOut capability)
+def make_none( token ):
+ return [[[('NONE', 0)]]]
+
def make_seqString( token ):
# Shifted Characters, and amount to move by to get non-shifted version
# US ANSI
for sequence in range( 0, len( items[ variant ] ) ):
for combo in range( 0, len( items[ variant ][ sequence ] ) ):
if items[ variant ][ sequence ][ combo ][0] in backend.requiredCapabilities.keys():
- # Use backend capability name and a single argument
- items[ variant ][ sequence ][ combo ] = tuple(
- [ backend.capabilityLookup( items[ variant ][ sequence ][ combo ][0] ),
- tuple( [ hid_lookup_dictionary[ items[ variant ][ sequence ][ combo ] ] ] ) ]
- )
+ try:
+ # Use backend capability name and a single argument
+ items[ variant ][ sequence ][ combo ] = tuple(
+ [ backend.capabilityLookup( items[ variant ][ sequence ][ combo ][0] ),
+ tuple( [ hid_lookup_dictionary[ items[ variant ][ sequence ][ combo ] ] ] ) ]
+ )
+ except KeyError:
+ print ( "{0} {1} is an invalid HID lookup value".format( ERROR, items[ variant ][ sequence ][ combo ] ) )
+ sys.exit( 1 )
return items
scanCode = tokenType('ScanCode') >> make_scanCode
consCode = tokenType('ConsCode') >> make_consCode
sysCode = tokenType('SysCode') >> make_sysCode
+none = tokenType('None') >> make_none
name = tokenType('Name')
number = tokenType('Number') >> make_number
comma = tokenType('Comma')
# Trigger / Result Codes
triggerCode_outerList = scanCode_sequence >> optionExpansion
triggerUSBCode_outerList = usbCode_sequence >> optionExpansion >> hidCodeToCapability
-resultCode_outerList = capFunc_sequence >> optionExpansion >> hidCodeToCapability
+resultCode_outerList = ( ( capFunc_sequence >> optionExpansion ) | none ) >> hidCodeToCapability
## Main Rules