#######################################
# Syntax Coloring Map For sarmfsw header
#######################################

#######################################
# Datatypes (KEYWORD1)
#######################################
eState	KEYWORD1
eEdge	KEYWORD1
eGPIOState	KEYWORD1
eGPIOPull	KEYWORD1
eEndian	KEYWORD1

intCPU_t	KEYWORD1
uintCPU_t	KEYWORD1
intPTR_t	KEYWORD1
uintPTR_t	KEYWORD1

BOOL	KEYWORD1
CHAR	KEYWORD1
BYTE	KEYWORD1
WORD	KEYWORD1
DWORD	KEYWORD1
LWORD	KEYWORD1
SBYTE	KEYWORD1
SWORD	KEYWORD1
SDWORD	KEYWORD1
SLWORD	KEYWORD1

sBitfield8	KEYWORD1
sBitfield16	KEYWORD1
sBitfield32	KEYWORD1
sBitfield64	KEYWORD1

sCoord2D	KEYWORD1

uByte	KEYWORD1
uWord	KEYWORD1
uDWord	KEYWORD1
uLWord	KEYWORD1

FctERR	KEYWORD1

LINEAR_TAB	KEYWORD1
sLinearFlexArray	KEYWORD1

FW_target	KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################
diInterrupts	KEYWORD2
enInterrupts	KEYWORD2

CAT	KEYWORD2
XCAT	KEYWORD2
STR		KEYWORD2
XSTR	KEYWORD2

UNUSED	KEYWORD2

GET_BITS	KEYWORD2
SET_BITS	KEYWORD2
CLR_BITS	KEYWORD2
INV_BITS	KEYWORD2
SET_BITS_VAL	KEYWORD2
TEST_BITS_SET	KEYWORD2
TEST_BITS_CLR	KEYWORD2
TEST_BITS_VAL	KEYWORD2
TEST_MASK_VAL	KEYWORD2

LSHIFT	KEYWORD2
RSHIFT	KEYWORD2
LSHIFT8	KEYWORD2
RSHIFT8	KEYWORD2
LSHIFT16	KEYWORD2
RSHIFT16	KEYWORD2
LSHIFT32	KEYWORD2
RSHIFT32	KEYWORD2
LSHIFT64	KEYWORD2
RSHIFT64	KEYWORD2

MAKEWORD	KEYWORD2
MAKELONG	KEYWORD2

LOBYTE	KEYWORD2
HIBYTE	KEYWORD2
LOWORD	KEYWORD2
HIWORD	KEYWORD2

SWAP_TYPE	KEYWORD2
SWAP_BYTE	KEYWORD2
SWAP_WORD	KEYWORD2
SWAP_DWORD	KEYWORD2
SWAP_LWORD	KEYWORD2
SWAP_FLOAT	KEYWORD2
SWAP_DOUBLE	KEYWORD2

VAL_AT	KEYWORD2

SZ_ARRAY	KEYWORD2
SZ_OBJ	KEYWORD2
SZ_TYP_MBR	KEYWORD2

TYP_MBR	KEYWORD2
TYP_MBR_TYP	KEYWORD2

OFFSET_OF	KEYWORD2
ROOT_OF	KEYWORD2

binEval	KEYWORD2
nbinEval	KEYWORD2

isNull		KEYWORD2
isNotNull	KEYWORD2

isOdd	KEYWORD2
isEven	KEYWORD2

# min	KEYWORD2
MIN	KEYWORD2

# max	KEYWORD2
MAX	KEYWORD2

min3	KEYWORD2
MIN3	KEYWORD2

max3	KEYWORD2
MAX3	KEYWORD2

clamp	KEYWORD2
CLAMP	KEYWORD2

SCALE_VAL	KEYWORD2
SCALE_VAL_T	KEYWORD2

BYTE_TO_PERC	KEYWORD2
PERC_TO_BYTE	KEYWORD2

HALTicks	KEYWORD2
HALERRtoFCTERR	KEYWORD2

malloc_assert	KEYWORD2
_get_current_heap_address	KEYWORD2
get_current_heap_address	KEYWORD2
strclr_full	KEYWORD2
printExpr	KEYWORD2
sprintExpr	KEYWORD2
snprintExpr	KEYWORD2
verbInstr	KEYWORD2
sverbInstr	KEYWORD2
snverbInstr	KEYWORD2
verbInc	KEYWORD2
verbDec	KEYWORD2
strappend	KEYWORD2
strnappend	KEYWORD2
strncat_sz	KEYWORD2
strclr	KEYWORD2
str_add_tab	KEYWORD2
str_add_cr	KEYWORD2
str_add_lf	KEYWORD2
str_add_crlf	KEYWORD2
strn_add_tab	KEYWORD2
strn_add_cr	KEYWORD2
strn_add_lf	KEYWORD2
strn_add_crlf	KEYWORD2

TPSSUP_MS	KEYWORD2
TPSINF_MS	KEYWORD2

maskBits	KEYWORD2
nbBitsState	KEYWORD2
getMSBitSet	KEYWORD2
swapBits	KEYWORD2

HexToBCD	KEYWORD2
BCDToHex	KEYWORD2

isNum	KEYWORD2
isLowerCase	KEYWORD2
isUpperCase	KEYWORD2
isAlpha	KEYWORD2
isAlphaNum	KEYWORD2
toLowerCase	KEYWORD2
toUpperCase	KEYWORD2
HexToASCII	KEYWORD2
ASCIIToHex	KEYWORD2
strDecToInt	KEYWORD2
strHexToInt	KEYWORD2

bin2gray	KEYWORD2
gray2bin	KEYWORD2

conv16to8Bits	KEYWORD2
conv8to16Bits	KEYWORD2
conv32to16Bits	KEYWORD2
conv16to32Bits	KEYWORD2
conv64to32Bits	KEYWORD2
conv32to64Bits	KEYWORD2
conv8upto16Bits	KEYWORD2
conv16upto32Bits	KEYWORD2
conv32upto64Bits	KEYWORD2
convXtoYBits	KEYWORD2
scaleValue	KEYWORD2

inTolerance	KEYWORD2
inRange	KEYWORD2

SWAP_END16B	KEYWORD2
SWAP_END32B	KEYWORD2
SWAP_END64B	KEYWORD2
SWAP_END16B_TAB	KEYWORD2
SWAP_END32B_TAB	KEYWORD2
SWAP_END64B_TAB	KEYWORD2
testEndian_basic	KEYWORD2
testEndian_full	KEYWORD2

celsius2kelvin	KEYWORD2
kelvin2celsius	KEYWORD2
celsius2fahrenheit	KEYWORD2
fahrenheit2celsius	KEYWORD2
fahrenheit2kelvin	KEYWORD2
kelvin2fahrenheit	KEYWORD2

SPLIT_FLOAT_TO_INTS	KEYWORD2
sIntFrac	KEYWORD1
get_fp_dec	KEYWORD2
float2sIntFrac	KEYWORD2
sIntFrac2float	KEYWORD2

RestrictedAverage_BYTE	KEYWORD2
RestrictedAverage_WORD	KEYWORD2
RestrictedAverage_DWORD	KEYWORD2
RestrictedAverage_SBYTE	KEYWORD2
RestrictedAverage_SWORD	KEYWORD2
RestrictedAverage_SDWORD	KEYWORD2
RestrictedAverage_float	KEYWORD2
RestrictedAverage_double	KEYWORD2

LINEAR_EVAL	KEYWORD2
linearization_eval	KEYWORD2
linearization_eval_flex	KEYWORD2

RAD_NORM	KEYWORD2
DEG_NORM	KEYWORD2
RAD_TO_DEG	KEYWORD2
DEG_TO_RAD	KEYWORD2
RAD_TO_FLOAT	KEYWORD2
FLOAT_TO_RAD	KEYWORD2
DEG_TO_FLOAT	KEYWORD2
FLOAT_TO_DEG	KEYWORD2

rotate_2D	KEYWORD2

#######################################
# Instances (KEYWORD2)
#######################################

#######################################
# Constants (LITERAL1)
#######################################
SARMFSW_RELEASE	LITERAL1
SARMFSW_VERSION_MAIN	LITERAL1
SARMFSW_VERSION_SUB	LITERAL1
SARMFSW_VERSION	LITERAL1

CORE_CMSIS_VERSION	LITERAL1
CORTEX_M	LITERAL1
STM32_CMSIS_VERSION	LITERAL1

Undefined	LITERAL1
Null	LITERAL1
pNull	LITERAL1
charNull	LITERAL1

#true	LITERAL1
#false	LITERAL1
True	LITERAL1
False	LITERAL1
TRUE	LITERAL1
FALSE	LITERAL1

UNUSED_RET	LITERAL1
_x_	LITERAL1

Off	LITERAL1
On	LITERAL1

NoEdge	LITERAL1
Rising	LITERAL1
Falling	LITERAL1

Reset	LITERAL1
Set	LITERAL1
Toggle	LITERAL1

PullDown	LITERAL1
PullUp	LITERAL1
NoPull	LITERAL1

Endian_little	LITERAL1
Endian_big	LITERAL1
Endian_mid_little	LITERAL1
Endian_mid_big	LITERAL1
Endian_unknown	LITERAL1

# Function return
ERROR_OK	LITERAL1
ERROR_SPEED	LITERAL1
ERROR_RANGE	LITERAL1
ERROR_TIMEOUT	LITERAL1
ERROR_VALUE	LITERAL1
ERROR_OVERFLOW	LITERAL1
ERROR_MATH	LITERAL1
ERROR_ENABLED	LITERAL1
ERROR_DISABLED	LITERAL1
ERROR_BUSY	LITERAL1
ERROR_NOTAVAIL	LITERAL1
ERROR_RXEMPTY	LITERAL1
ERROR_TXFULL	LITERAL1
ERROR_BUSOFF	LITERAL1
ERROR_OVERRUN	LITERAL1
ERROR_FRAMING	LITERAL1
ERROR_PARITY	LITERAL1
ERROR_NOISE	LITERAL1
ERROR_IDLE	LITERAL1
ERROR_FAULT	LITERAL1
ERROR_BREAK	LITERAL1
ERROR_CRC	LITERAL1
ERROR_ARBITR	LITERAL1
ERROR_PROTECT	LITERAL1
ERROR_UNDERFLOW	LITERAL1
ERROR_UNDERRUN	LITERAL1
ERROR_COMMON	LITERAL1
ERROR_LINSYNC	LITERAL1
ERROR_FAILED	LITERAL1
ERROR_QFULL	LITERAL1
ERROR_CMD	LITERAL1
ERROR_NOTIMPLEM	LITERAL1
ERROR_MEMORY	LITERAL1
ERROR_INSTANCE	LITERAL1
ERROR_DEVICE_UNKNOWN	LITERAL1
ERROR_DEVICE_RESPONSE	LITERAL1
ERROR_COM	LITERAL1

# Common Reset
RST_POR	LITERAL1
RST_UNKNOWN	LITERAL1

# STM32 Reset
RST_PIN	LITERAL1
RST_SW	LITERAL1
RST_IWDG	LITERAL1
RST_WWDG	LITERAL1
RST_LPWR	LITERAL1
RST_OBL	LITERAL1
RST_V18PWR	LITERAL1

# SAM Reset
RST_BODCORE	LITERAL1
RST_BODVDD	LITERAL1
RST_EXT	LITERAL1
RST_WDT	LITERAL1
RST_SYST	LITERAL1

# Math
M_1_3	LITERAL1
M_2_3	LITERAL1

M_SQRT2	LITERAL1

M_PI	LITERAL1
M_TWOPI	LITERAL1

M_PI_180	LITERAL1
M_180_PI	LITERAL1

# Keywords
__I	LITERAL1
__O	LITERAL1
__IO	LITERAL1
__IM	LITERAL1
__OM	LITERAL1
__IOM	LITERAL1
__RESTRICT	LITERAL1
__STATIC	LITERAL1
__INLINE	LITERAL1
__STATIC_INLINE	LITERAL1
__NEVER_INLINE	LITERAL1
__TYPEOF	LITERAL1
__ASM	LITERAL1

# Specific symbols
INO_FAMILY	LITERAL1
PIC_FAMILY	LITERAL1
SAM_FAMILY	LITERAL1
STM_FAMILY	LITERAL1

__STDC_C78	LITERAL1
__STDC_C90	LITERAL1
__STDC_C23	LITERAL1
__STDC_C17	LITERAL1
__STDC_C11	LITERAL1
__STDC_C99	LITERAL1
__STDC_C95	LITERAL1

# User defined symbols
SARMFSW_NO_CHIP_HAL	LITERAL1
HAL_MAX_TICKS	LITERAL1
HAL_MS_TICKS_FACTOR	LITERAL1
HAL_INC_DISABLE	LITERAL1
BIG_ENDIAN	LITERAL1
LITTLE_ENDIAN	LITERAL1
REVERSE_BITFIELD	LITERAL1
STDBOOL_NDEF	LITERAL1
STDINT_NDEF	LITERAL1
USE_INO_BINARY_HEADER	LITERAL1
SINGLE_SHIFT_ONLY_OPCODE	LITERAL1
NO_STATIC_FUNC	LITERAL1
UNITY_TESTING	LITERAL1
