42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Check for markers (typically in comments).
444f91a8285333437cdc9da6bf750121b52f208dvboxsync# Newline escapes.
444f91a8285333437cdc9da6bf750121b52f208dvboxsync:check-newline-escape
444f91a8285333437cdc9da6bf750121b52f208dvboxsync/\\$/!bno-more-newline-escapes
444f91a8285333437cdc9da6bf750121b52f208dvboxsyncb check-newline-escape
444f91a8285333437cdc9da6bf750121b52f208dvboxsync:no-more-newline-escapes
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Strip comments and trailing space.
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/[[:space:]][[:space:]]*\/\*.*$//g
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/[[:space:]][[:space:]]*\/\/.*$//g
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/[[:space:]][[:space:]]*$//g
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Try identify the statement.
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*define[[:space:]]/bdefine
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*ifdef[[:space:]]/bifdef
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*ifndef[[:space:]]/bifndef
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*if[[:space:]]/bif
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*elif[[:space:]]/belif
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*else$/belse
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync/#[[:space:]]*endif$/bendif
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Not recognized, drop it.
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Defines needs some extra massaging to work in yasm.
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Things like trailing type indicators ('U', 'ULL' ++) does not go down well.
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)define/\1%define/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]]0[xX][0-9a-fA-F][0-9a-fA-F]*\)U$/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]]0[xX][0-9a-fA-F][0-9a-fA-F]*\)U\([[:space:]]*\))$/\1\2)/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]][0-9][0-9]*\)U[[:space:]]*$/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]][0-9][0-9]*\)U\([[:space:]]*\))$/\1\2)/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]]0[xX][0-9a-fA-F][0-9a-fA-F]*\)UL$/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]]0[xX][0-9a-fA-F][0-9a-fA-F]*\)UL\([[:space:]]*\))$/\1\2)/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]][0-9][0-9]*\)UL[[:space:]]*$/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]][0-9][0-9]*\)UL\([[:space:]]*\))$/\1\2)/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]]0[xX][0-9a-fA-F][0-9a-fA-F]*\)ULL$/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]]0[xX][0-9a-fA-F][0-9a-fA-F]*\)ULL\([[:space:]]*\))$/\1\2)/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]][0-9][0-9]*\)ULL[[:space:]]*$/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/\([[:space:]][0-9][0-9]*\)ULL\([[:space:]]*\))$/\1\2)/
019e36b4a316b175952af540cea42e80b78c232fvboxsyncs/UINT64_C([[:space:]]*\(0[xX][0-9a-fA-F][0-9a-fA-F]*\)[[:space:]]*)/\1/
019e36b4a316b175952af540cea42e80b78c232fvboxsyncs/UINT64_C([[:space:]]*\([0-9][0-9]*\)[[:space:]]*)/\1/
c36d095531b5355dba93be3b9b862bac18148109vboxsyncs/UINT32_C([[:space:]]*\(0[xX][0-9a-fA-F][0-9a-fA-F]*\)[[:space:]]*)/\1/
c36d095531b5355dba93be3b9b862bac18148109vboxsyncs/UINT32_C([[:space:]]*\([0-9][0-9]*\)[[:space:]]*)/\1/
866306ba031a2f258907507dd4abb3b84b6983e7vboxsyncs/UINT16_C([[:space:]]*\(0[xX][0-9a-fA-F][0-9a-fA-F]*\)[[:space:]]*)/\1/
866306ba031a2f258907507dd4abb3b84b6983e7vboxsyncs/UINT16_C([[:space:]]*\([0-9][0-9]*\)[[:space:]]*)/\1/
866306ba031a2f258907507dd4abb3b84b6983e7vboxsyncs/UINT8_C([[:space:]]*\(0[xX][0-9a-fA-F][0-9a-fA-F]*\)[[:space:]]*)/\1/
866306ba031a2f258907507dd4abb3b84b6983e7vboxsyncs/UINT8_C([[:space:]]*\([0-9][0-9]*\)[[:space:]]*)/\1/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Conditional statements, 1:1.
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)ifdef/\1%ifdef/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)ifndef/\1%ifndef/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)if/\1%if/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)elif/\1%elif/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)else.*$/\1%else/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsyncs/#\([[:space:]]*\)endif.*$/\1%endif/
42943cbfb6c28abee5a36cc4573b5c7547b65ad0vboxsync# Assembly statement... may need adjusting when used.