# ACPI Source Language
file.patterns.asl=*.asl;*.dsl
lexer.$(file.patterns.asl)=cpp

# Advanced Configuration and Power Interface Specification Revision 5.0, §19.3
# http://acpi.info/spec50.htm
keywordclass.asl=\
AccessAs Acquire Add Alias And Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Arg6 \
BankField Break BreakPoint Buffer Case Concatenate ConcatenateResTemplate \
CondRefOf Connection Continue CopyObject CreateBitField CreateByteField \
CreateDWordField CreateField CreateQWordField CreateWordField DataTableRegion \
Debug Decrement Default DefinitionBlock DerefOf Device Device Divide DMA \
DWordIO DWordMemory DWordSpace EisaId ElseIf Else EndDependentFn Event \
ExtendedIO ExtendedMemory ExtendedMemory ExtendedSpace External Fatal Field \
FindSetLeftBit FindSetRightBit FixedDMA FixedIO FromBCD Function GpioInt GpioIo \
I2CSerialBus If Include Increment Index IndexField Interrupt IO IRQNoFlags IRQ \
LAnd LEqual LGreater LGreaterEqual LLess LLessEqual LNotEqual LNot Load LoadTable \
Local0 Local1 Local2 Local3 Local4 Local5 Local6 Local7 LOr Match Memory24 \
Memory32 Memory32Fixed Method Mid Mod Multiply Mutex Name NAnd NoOp NOr Not \
Notify Offset ObjectType Ones One OperationRegion Or Package PowerResource \
Processor QWordIO QWordMemory QWordSpace RawDataBuffer RefOf Register Release \
Reset ResourceTemplate Return Revision Scope ShiftLeft ShiftRight Signal SizeOf \
Sleep SPISerialBus Stall StartDependentFn StartDependentFnNoPri Store Subtract \
Switch ThermalZone Timer ToBCD ToBuffer ToDecimalString ToHexString ToInteger \
ToString ToUUID UARTSerialBus Unicode Unload VendorLong VendorShort Wait While \
WordBusNumber WordIO WordSpace XOr Zero

# ripped straight from http://pypi.python.org/packages/source/p/pygments-asl/
# the spec itself has no convenient list of these keywords
keywordclass2.asl=\
AttribQuick AttribSendReceive AttribByte AttribBytes AttribRawBytes \
AttribRawProcessBytes AttribWord AttribBlock AttribProcessCall AttribBlockProcessCall \
AnyAcc ByteAcc WordAcc DWordAcc QWordAcc BufferAcc AddressRangeMemory \
AddressRangeReserved AddressRangeNVS AddressRangeACPI RegionSpaceKeyword \
FFixedHW PCC AddressingMode7Bit AddressingMode10Bit DataBitsFive DataBitsSix \
DataBitsSeven DataBitsEight DataBitsNine BusMaster NotBusMaster ClockPhaseFirst \
ClockPhaseSecond ClockPolarityLow ClockPolarityHigh SubDecode PosDecode BigEndianing \
LittleEndian AttribBytes AttribRawBytes AttribRawProcessBytes FlowControlNone \
FlowControlXon FlowControlHardware Edge Level ActiveHigh ActiveLow ActiveHigh \
ActiveLow ActiveBoth Decode16 Decode10 IoRestrictionNone IoRestrictionInputOnly \
IoRestrictionOutputOnly IoRestrictionNoneAndPreserve Lock NoLock \
MTR MEQ MLE MLT MGE MGT MaxFixed MaxNotFixed Cacheable WriteCombining Prefetchable \
NonCacheable MinFixed MinNotFixed UnknownObj IntObj StrObj BuffObj PkgObj FieldUnitObj \
DeviceObj EventObj MethodObj MutexObj OpRegionObj PowerResObj ProcessorObj \
ThermalZoneObj BuffFieldObj DDBHandleObj ParityTypeNone ParityTypeSpace ParityTypeMark \
ParityTypeOdd ParityTypeEven PullDefault PullUp PullDown PullNone PolarityHigh \
PolarityLow ISAOnlyRanges NonISAOnlyRanges EntireRange ReadWrite ReadOnly \
UserDefRegionSpace SystemIO SystemMemory PCI_Config EmbeddedControl SMBus SystemCMOS \
PciBarTarget IPMI GeneralPurposeIO GenericSerialBus ResourceConsumer ResourceProducer \
Serialized NotSerialized Shared Exclusive SharedAndWake ExclusiveAndWake \
ControllerInitiated DeviceInitiated StopBitsZero StopBitsOne StopBitsOnePlusHalf \
StopBitsTwo Width8Bit Width16Bit Width32Bit Width64Bit Width128Bit Width256Bit \
SparseTranslation DenseTranslation TypeTranslation TypeStatic Preserve WriteAsOnes \
WriteAsZeros Transfer8 Transfer16 Transfer8_16 ThreeWireMode FourWireMode

keywords.$(file.patterns.asl)=$(keywordclass.asl)
keywords2.$(file.patterns.asl)=$(keywordclass2.asl)
