
# language keywords - Arduino doesn't define these, but probably should
volatile	LITERAL1
constexpr	LITERAL1
alignas	LITERAL1
alignof	LITERAL1
nullptr	LITERAL1
noexcept	LITERAL1
static_assert	LITERAL1
thread_local	LITERAL1
size_t	LITERAL1

# teensy specific functions
elapsedMillis	LITERAL1
elapsedMicros	LITERAL1
readString	KEYWORD2
readStringUntil	KEYWORD2
analogReadRes	KEYWORD2
analogReadResolution	KEYWORD2
analogReadAveraging	KEYWORD2
analogWriteRes	KEYWORD2
analogWriteResolution	KEYWORD2
analogWriteFrequency	KEYWORD2
touchRead	KEYWORD2
Teensy3Clock	KEYWORD2
IntervalTimer	KEYWORD2
printf	KEYWORD2
digitalWriteFast	KEYWORD2
digitalReadFast	KEYWORD2
digitalToggleFast	KEYWORD2
digitalToggle	KEYWORD2
transmitterEnable	KEYWORD2
attachRts	KEYWORD2
attachCts	KEYWORD2
PROGMEM	LITERAL1
FLASHMEM	LITERAL1
DMAMEM	LITERAL1
EXTMEM	LITERAL1
FASTRUN	LITERAL1
Serial4	KEYWORD1
Serial5	KEYWORD1
Serial6	KEYWORD1
Serial7	KEYWORD1
Serial8	KEYWORD1
SerialUSB1	KEYWORD1
SerialUSB2	KEYWORD1
setRX	KEYWORD2
setTX	KEYWORD2
write9bit	KEYWORD2
addMemoryForRead	KEYWORD2
addMemoryForWrite	KEYWORD2
clear	KEYWORD2
EventResponder	LITERAL1
EventResponderRef	LITERAL1
attachImmediate	KEYWORD2
triggerEvent	KEYWORD2
clearEvent	KEYWORD2
getStatus	KEYWORD2
getData	KEYWORD2
setContext	KEYWORD2
getContext	KEYWORD2
waitForEvent	KEYWORD2
MillisTimer	LITERAL1
beginRepeating	KEYWORD2
delayNanoseconds	KEYWORD2
extmem_malloc	KEYWORD2
extmem_free	KEYWORD2
extmem_calloc	KEYWORD2
extmem_realloc	KEYWORD2
strcasecmp	KEYWORD2

# removed by Arduino 1.0, now also removed from Teensyduino
#BYTE	LITERAL1

# Arduino constants
A0	LITERAL1
A1	LITERAL1
A2	LITERAL1
A3	LITERAL1
A4	LITERAL1
A5	LITERAL1
A6	LITERAL1
A7	LITERAL1
A8	LITERAL1
A9	LITERAL1
A10	LITERAL1
A11	LITERAL1
A12	LITERAL1
A13	LITERAL1
A14	LITERAL1
A15	LITERAL1
A16	LITERAL1
A17	LITERAL1
A18	LITERAL1
A19	LITERAL1
A20	LITERAL1
A21	LITERAL1
A22	LITERAL1
A23	LITERAL1
A24	LITERAL1
A25	LITERAL1
A26	LITERAL1
SS	LITERAL1
MOSI	LITERAL1
MISO	LITERAL1
SCK	LITERAL1
SDA	LITERAL1
SCL	LITERAL1
NUM_DIGITAL_PINS	LITERAL1
NUM_ANALOG_INPUTS	LITERAL1
analogInputToDigitalPin	KEYWORD2
digitalPinHasPWM	KEYWORD2
NOT_AN_INTERRUPT	LITERAL1
digitalPinToInterrupt	KEYWORD2
FILE_READ	LITERAL1
FILE_WRITE	LITERAL1
FILE_WRITE_BEGIN	LITERAL1

# HardwareSerial modes
SERIAL_7E1	LITERAL1
SERIAL_7O1	LITERAL1
SERIAL_8N1	LITERAL1
SERIAL_8E1	LITERAL1
SERIAL_8O1	LITERAL1
SERIAL_7E1_RXINV	LITERAL1
SERIAL_7O1_RXINV	LITERAL1
SERIAL_8N1_RXINV	LITERAL1
SERIAL_8E1_RXINV	LITERAL1
SERIAL_8O1_RXINV	LITERAL1
SERIAL_7E1_TXINV	LITERAL1
SERIAL_7O1_TXINV	LITERAL1
SERIAL_8N1_TXINV	LITERAL1
SERIAL_8E1_TXINV	LITERAL1
SERIAL_8O1_TXINV	LITERAL1
SERIAL_7E1_RXINV_TXINV	LITERAL1
SERIAL_7O1_RXINV_TXINV	LITERAL1
SERIAL_8N1_RXINV_TXINV	LITERAL1
SERIAL_8E1_RXINV_TXINV	LITERAL1
SERIAL_8O1_RXINV_TXINV	LITERAL1
SERIAL_8E2	LITERAL1
SERIAL_8O2	LITERAL1
SERIAL_8E2_RXINV	LITERAL1
SERIAL_8O2_RXINV	LITERAL1
SERIAL_8E2_TXINV	LITERAL1
SERIAL_8O2_TXINV	LITERAL1
SERIAL_8E2_RXINV_TXINV	LITERAL1
SERIAL_8O2_RXINV_TXINV	LITERAL1
SERIAL_8N2	LITERAL1
SERIAL_8N2_RXINV	LITERAL1
SERIAL_8N2_TXINV	LITERAL1
SERIAL_8N2_RXINV_TXINV	LITERAL1
SERIAL_9N1	LITERAL1
SERIAL_9E1	LITERAL1
SERIAL_9O1	LITERAL1
SERIAL_9N1_RXINV	LITERAL1
SERIAL_9E1_RXINV	LITERAL1
SERIAL_9O1_RXINV	LITERAL1
SERIAL_9N1_TXINV	LITERAL1
SERIAL_9E1_TXINV	LITERAL1
SERIAL_9O1_TXINV	LITERAL1
SERIAL_9N1_RXINV_TXINV	LITERAL1
SERIAL_9E1_RXINV_TXINV	LITERAL1
SERIAL_9O1_RXINV_TXINV	LITERAL1

# Teensy 3.x advanced pin states
OUTPUT_OPENDRAIN	LITERAL1
INPUT_PULLUP	LITERAL1
INPUT_PULLDOWN	LITERAL1
INPUT_DISABLE	LITERAL1

# String functions
copy	KEYWORD2
append	KEYWORD2

# Teensy 2.0 pin names
PIN_A0	LITERAL1
PIN_A1	LITERAL1
PIN_A2	LITERAL1
PIN_A3	LITERAL1
PIN_A4	LITERAL1
PIN_A5	LITERAL1
PIN_A6	LITERAL1
PIN_A7	LITERAL1
PIN_B0	LITERAL1
PIN_B1	LITERAL1
PIN_B2	LITERAL1
PIN_B3	LITERAL1
PIN_B4	LITERAL1
PIN_B5	LITERAL1
PIN_B6	LITERAL1
PIN_B7	LITERAL1
PIN_C0	LITERAL1
PIN_C1	LITERAL1
PIN_C2	LITERAL1
PIN_C3	LITERAL1
PIN_C4	LITERAL1
PIN_C5	LITERAL1
PIN_C6	LITERAL1
PIN_C7	LITERAL1
PIN_D0	LITERAL1
PIN_D1	LITERAL1
PIN_D2	LITERAL1
PIN_D3	LITERAL1
PIN_D4	LITERAL1
PIN_D5	LITERAL1
PIN_D6	LITERAL1
PIN_D7	LITERAL1
PIN_E0	LITERAL1
PIN_E1	LITERAL1
PIN_E2	LITERAL1
PIN_E3	LITERAL1
PIN_E4	LITERAL1
PIN_E5	LITERAL1
PIN_E6	LITERAL1
PIN_E7	LITERAL1
PIN_F0	LITERAL1
PIN_F1	LITERAL1
PIN_F2	LITERAL1
PIN_F3	LITERAL1
PIN_F4	LITERAL1
PIN_F5	LITERAL1
PIN_F6	LITERAL1
PIN_F7	LITERAL1
PIN_SS	LITERAL1
PIN_SCLK	LITERAL1
PIN_MOSI	LITERAL1
PIN_MISO	LITERAL1
PIN_LED	LITERAL1
ANALOG_0	LITERAL1	AnalogRead
ANALOG_1	LITERAL1	AnalogRead
ANALOG_2	LITERAL1	AnalogRead
ANALOG_3	LITERAL1	AnalogRead
ANALOG_4	LITERAL1	AnalogRead
ANALOG_5	LITERAL1	AnalogRead
ANALOG_6	LITERAL1	AnalogRead
ANALOG_7	LITERAL1	AnalogRead
ANALOG_1_TO_0_X10	LITERAL1	AnalogRead
ANALOG_1_TO_0_X200	LITERAL1	AnalogRead
ANALOG_3_TO_2_X10	LITERAL1	AnalogRead
ANALOG_3_TO_2_X200	LITERAL1	AnalogRead
ANALOG_0_TO_1	LITERAL1	AnalogRead
ANALOG_2_TO_1	LITERAL1	AnalogRead
ANALOG_3_TO_1	LITERAL1	AnalogRead
ANALOG_4_TO_1	LITERAL1	AnalogRead
ANALOG_5_TO_1	LITERAL1	AnalogRead
ANALOG_6_TO_1	LITERAL1	AnalogRead
ANALOG_7_TO_1	LITERAL1	AnalogRead
ANALOG_0_TO_2	LITERAL1	AnalogRead
ANALOG_1_TO_2	LITERAL1	AnalogRead
ANALOG_3_TO_2	LITERAL1	AnalogRead
ANALOG_4_TO_2	LITERAL1	AnalogRead
ANALOG_5_TO_2	LITERAL1	AnalogRead
ANALOG_1_1V	LITERAL1	AnalogRead
ANALOG_0V	LITERAL1	AnalogRead

# USB Serial
send_now	KEYWORD2
baud	KEYWORD2
stopbits	KEYWORD2
paritytype	KEYWORD2
numbits	KEYWORD2
dtr	KEYWORD2
rts	KEYWORD2

# USB Keyboard
write_unicode	KEYWORD2
set_modifier	KEYWORD2
set_key1	KEYWORD2
set_key2	KEYWORD2
set_key3	KEYWORD2
set_key4	KEYWORD2
set_key5	KEYWORD2
set_key6	KEYWORD2
set_media	KEYWORD2
MODIFIERKEY_CTRL	LITERAL1
MODIFIERKEY_SHIFT	LITERAL1
MODIFIERKEY_ALT	LITERAL1
MODIFIERKEY_GUI	LITERAL1
MODIFIERKEY_LEFT_CTRL	LITERAL1
MODIFIERKEY_LEFT_SHIFT	LITERAL1
MODIFIERKEY_LEFT_ALT	LITERAL1
MODIFIERKEY_LEFT_GUI	LITERAL1
MODIFIERKEY_RIGHT_CTRL	LITERAL1
MODIFIERKEY_RIGHT_SHIFT	LITERAL1
MODIFIERKEY_RIGHT_ALT	LITERAL1
MODIFIERKEY_RIGHT_GUI	LITERAL1
KEY_MEDIA_VOLUME_INC	LITERAL1
KEY_MEDIA_VOLUME_DEC	LITERAL1
KEY_MEDIA_MUTE	LITERAL1
KEY_MEDIA_PLAY_PAUSE	LITERAL1
KEY_MEDIA_NEXT_TRACK	LITERAL1
KEY_MEDIA_PREV_TRACK	LITERAL1
KEY_MEDIA_STOP	LITERAL1
KEY_MEDIA_EJECT	LITERAL1
KEY_MEDIA_PLAY	LITERAL1
KEY_MEDIA_PAUSE	LITERAL1
KEY_MEDIA_RECORD	LITERAL1
KEY_MEDIA_REWIND	LITERAL1
KEY_MEDIA_FAST_FORWARD	LITERAL1
KEY_MEDIA_PLAY_SKIP	LITERAL1
KEY_SYSTEM_POWER_DOWN	LITERAL1
KEY_SYSTEM_SLEEP	LITERAL1
KEY_SYSTEM_WAKE_UP	LITERAL1
KEY_A	LITERAL1
KEY_B	LITERAL1
KEY_C	LITERAL1
KEY_D	LITERAL1
KEY_E	LITERAL1
KEY_F	LITERAL1
KEY_G	LITERAL1
KEY_H	LITERAL1
KEY_I	LITERAL1
KEY_J	LITERAL1
KEY_K	LITERAL1
KEY_L	LITERAL1
KEY_M	LITERAL1
KEY_N	LITERAL1
KEY_O	LITERAL1
KEY_P	LITERAL1
KEY_Q	LITERAL1
KEY_R	LITERAL1
KEY_S	LITERAL1
KEY_T	LITERAL1
KEY_U	LITERAL1
KEY_V	LITERAL1
KEY_W	LITERAL1
KEY_X	LITERAL1
KEY_Y	LITERAL1
KEY_Z	LITERAL1
KEY_1	LITERAL1
KEY_2	LITERAL1
KEY_3	LITERAL1
KEY_4	LITERAL1
KEY_5	LITERAL1
KEY_6	LITERAL1
KEY_7	LITERAL1
KEY_8	LITERAL1
KEY_9	LITERAL1
KEY_0	LITERAL1
KEY_ENTER	LITERAL1
KEY_ESC	LITERAL1
KEY_BACKSPACE	LITERAL1
KEY_TAB	LITERAL1
KEY_SPACE	LITERAL1
KEY_MINUS	LITERAL1
KEY_EQUAL	LITERAL1
KEY_LEFT_BRACE	LITERAL1
KEY_RIGHT_BRACE	LITERAL1
KEY_BACKSLASH	LITERAL1
KEY_NON_US_NUM	LITERAL1
KEY_SEMICOLON	LITERAL1
KEY_QUOTE	LITERAL1
KEY_TILDE	LITERAL1
KEY_COMMA	LITERAL1
KEY_PERIOD	LITERAL1
KEY_SLASH	LITERAL1
KEY_CAPS_LOCK	LITERAL1
KEY_F1	LITERAL1
KEY_F2	LITERAL1
KEY_F3	LITERAL1
KEY_F4	LITERAL1
KEY_F5	LITERAL1
KEY_F6	LITERAL1
KEY_F7	LITERAL1
KEY_F8	LITERAL1
KEY_F9	LITERAL1
KEY_F10	LITERAL1
KEY_F11	LITERAL1
KEY_F12	LITERAL1
KEY_PRINTSCREEN	LITERAL1
KEY_SCROLL_LOCK	LITERAL1
KEY_PAUSE	LITERAL1
KEY_INSERT	LITERAL1
KEY_HOME	LITERAL1
KEY_PAGE_UP	LITERAL1
KEY_DELETE	LITERAL1
KEY_END	LITERAL1
KEY_PAGE_DOWN	LITERAL1
KEY_RIGHT	LITERAL1
KEY_LEFT	LITERAL1
KEY_DOWN	LITERAL1
KEY_UP	LITERAL1
KEY_NUM_LOCK	LITERAL1
KEYPAD_SLASH	LITERAL1
KEYPAD_ASTERIX	LITERAL1
KEYPAD_MINUS	LITERAL1
KEYPAD_PLUS	LITERAL1
KEYPAD_ENTER	LITERAL1
KEYPAD_1	LITERAL1
KEYPAD_2	LITERAL1
KEYPAD_3	LITERAL1
KEYPAD_4	LITERAL1
KEYPAD_5	LITERAL1
KEYPAD_6	LITERAL1
KEYPAD_7	LITERAL1
KEYPAD_8	LITERAL1
KEYPAD_9	LITERAL1
KEYPAD_0	LITERAL1
KEYPAD_PERIOD	LITERAL1
KEY_UP_ARROW	LITERAL1
KEY_DOWN_ARROW	LITERAL1
KEY_LEFT_ARROW	LITERAL1
KEY_RIGHT_ARROW	LITERAL1
KEY_RETURN	LITERAL1
KEY_LEFT_CTRL	LITERAL1
KEY_LEFT_SHIFT	LITERAL1
KEY_LEFT_ALT	LITERAL1
KEY_LEFT_GUI	LITERAL1
KEY_RIGHT_CTRL	LITERAL1
KEY_RIGHT_SHIFT	LITERAL1
KEY_RIGHT_ALT	LITERAL1
KEY_RIGHT_GUI	LITERAL1

# USB Mouse
moveTo	KEYWORD2
screenSize	KEYWORD2
scroll	KEYWORD2
set_buttons	KEYWORD2
isPressed	KEYWORD2
MOUSE_LEFT	LITERAL1
MOUSE_MIDDLE	LITERAL1
MOUSE_RIGHT	LITERAL1
MOUSE_ALL	LITERAL1
MOUSE_BACK	LITERAL1
MOUSE_FORWARD	LITERAL1

# USB Joystick
Joystick	KEYWORD1
button	KEYWORD2
X	KEYWORD2
Y	KEYWORD2
position	KEYWORD2
Z	KEYWORD2
Xrotate	KEYWORD2
Yrotate	KEYWORD2
Zrotate	KEYWORD2
sliderLeft	KEYWORD2
sliderRight	KEYWORD2
slider	KEYWORD2
hat	KEYWORD2
useManualSend	KEYWORD2

# USB Disk
Disk	KEYWORD1
claim	KEYWORD2
readSector	KEYWORD2
writeSector	KEYWORD2
releaseReadOnly	KEYWORD2

# USB MIDI
usbMIDI	KEYWORD1
sendNoteOff	KEYWORD2
sendNoteOn	KEYWORD2
sendAfterTouchPoly	KEYWORD2
sendPolyPressure	KEYWORD2
sendControlChange	KEYWORD2
sendProgramChange	KEYWORD2
sendAfterTouch	KEYWORD2
sendPitchBend	KEYWORD2
sendSysEx	KEYWORD2
sendRealTime	KEYWORD2
sendTimeCodeQuarterFrame	KEYWORD2
sendSongPosition	KEYWORD2
sendSongSelect	KEYWORD2
sendTuneRequest	KEYWORD2
beginRpn	KEYWORD2
sendRpnValue	KEYWORD2
sendRpnValue	KEYWORD2
sendRpnIncrement	KEYWORD2
sendRpnDecrement	KEYWORD2
endRpn	KEYWORD2
beginNrpn	KEYWORD2
sendNrpnValue	KEYWORD2
sendNrpnValue	KEYWORD2
sendNrpnIncrement	KEYWORD2
sendNrpnDecrement	KEYWORD2
endNrpn	KEYWORD2
send	KEYWORD2
analog2velocity	KEYWORD2
getType	KEYWORD2
getCable	KEYWORD2
getChannel	KEYWORD2
getData1	KEYWORD2
getData2	KEYWORD2
getSysExArray	KEYWORD2
setHandleNoteOff	KEYWORD2
setHandleNoteOn	KEYWORD2
setHandleVelocityChange	KEYWORD2
setHandleControlChange	KEYWORD2
setHandleProgramChange	KEYWORD2
setHandleAfterTouch	KEYWORD2
setHandlePitchChange	KEYWORD2
NoteOff	LITERAL1
NoteOn	LITERAL1
AfterTouchPoly	LITERAL1
ControlChange	LITERAL1
ProgramChange	LITERAL1
AfterTouchChannel	LITERAL1
PitchBend	LITERAL1
SystemExclusive	LITERAL1
TimeCodeQuarterFrame	LITERAL1
SongPosition	LITERAL1
SongSelect	LITERAL1
TuneRequest	LITERAL1
Clock	LITERAL1
Start	LITERAL1
Continue	LITERAL1
Stop	LITERAL1
ActiveSensing	LITERAL1
SystemReset	LITERAL1
midiEventPacket_t	LITERAL1
MidiUSB	KEYWORD1
sendMIDI	KEYWORD2

# USB RawHID
RawHID	KEYWORD1
recv	KEYWORD2
send	KEYWORD2

# USB Flight Sim Controls
FlightSim	KEYWORD1
FlightSimCommand	KEYWORD2
FlightSimInteger	KEYWORD2
FlightSimFloat	KEYWORD2
FlightSimElapsedFrames	KEYWORD2
FlightSimData	KEYWORD2
FlightSimEvent	KEYWORD2
onChange	KEYWORD2
update	KEYWORD2
isEnabled	KEYWORD2
getFrameCount	KEYWORD2
XPlaneRef	KEYWORD2

# USB Touchscreen
TouchscreenUSB	KEYWORD1
