#include "benchmark/benchmark.h"
#include <regex>
#include <iostream>
Go to the source code of this file.
|
| #define | E_DELIMITER_SPACE "[[:blank:]]+" |
| |
| #define | DEFINE_REGEX_IGNORECASE(_NAME_, _REGEXP_) const std::regex _NAME_ = std::regex( _REGEXP_, std::regex::ECMAScript | std::regex::icase); |
| |
| #define | E_KEYWORD_BLOCK(_NAME_) "(^" _NAME_ "[[:blank:]]*$)?" |
| | A keyword which should be on it's own line. Used in IDENTIFY_KEYWORD.
|
| |
| #define | E_KEYWORD_INLINE(_NAME_) "(^" _NAME_ E_DELIMITER_SPACE ".*$)?" |
| | A keyword which should have values following it. Used in IDENTIFY_KEYWORD.
|
| |
| #define | E_KEYWORD_INLINE_TOLERANT(_NAME_) "(^" _NAME_ "[[:blank:],]+" ".*$)?" |
| | Inline keyword, tolerant version: keyword and values can be delimited by either space or comma.
|
| |
| #define | IDENTIFY_KEYWORD_REGEX_STRING |
| |
| #define | stricmp strcasecmp |
| |
| #define | strnicmp strncasecmp |
| |
| #define | CASE(_LOWER_) case(_LOWER_): case((_LOWER_)-32) |
| |
| #define | MATCH(_STR_, _KWORD_) if (stricmp(line+1, _STR_+1) == 0) return _KWORD_; |
| |
|
| enum | Keyword {
KEYWORD_ADD_ANIMATION = 1
, KEYWORD_AIRBRAKES
, KEYWORD_ANIMATORS
, KEYWORD_ANTI_LOCK_BRAKES
,
KEYWORD_AXLES
, KEYWORD_AUTHOR
, KEYWORD_BACKMESH
, KEYWORD_BEAMS
,
KEYWORD_BRAKES
, KEYWORD_CAB
, KEYWORD_CAMERARAIL
, KEYWORD_CAMERAS
,
KEYWORD_CINECAM
, KEYWORD_COLLISIONBOXES
, KEYWORD_COMMANDS
, KEYWORD_COMMANDS2
,
KEYWORD_CONTACTERS
, KEYWORD_CRUISECONTROL
, KEYWORD_DESCRIPTION
, KEYWORD_DETACHER_GROUP
,
KEYWORD_DISABLEDEFAULTSOUNDS
, KEYWORD_ENABLE_ADVANCED_DEFORMATION
, KEYWORD_END
, KEYWORD_END_SECTION
,
KEYWORD_ENGINE
, KEYWORD_ENGOPTION
, KEYWORD_ENGTURBO
, KEYWORD_ENVMAP
,
KEYWORD_EXHAUSTS
, KEYWORD_EXTCAMERA
, KEYWORD_FILEFORMATVERSION
, KEYWORD_FILEINFO
,
KEYWORD_FIXES
, KEYWORD_FLARES
, KEYWORD_FLARES2
, KEYWORD_FLEXBODIES
,
KEYWORD_FLEXBODY_CAMERA_MODE
, KEYWORD_FLEXBODYWHEELS
, KEYWORD_FORWARDCOMMANDS
, KEYWORD_FUSEDRAG
,
KEYWORD_GLOBALS
, KEYWORD_GUID
, KEYWORD_GUISETTINGS
, KEYWORD_HELP
,
KEYWORD_HIDE_IN_CHOOSER
, KEYWORD_HOOKGROUP
, KEYWORD_HOOKS
, KEYWORD_HYDROS
,
KEYWORD_IMPORTCOMMANDS
, KEYWORD_LOCKGROUPS
, KEYWORD_LOCKGROUP_DEFAULT_NOLOCK
, KEYWORD_MANAGEDMATERIALS
,
KEYWORD_MATERIALFLAREBINDINGS
, KEYWORD_MESHWHEELS
, KEYWORD_MESHWHEELS2
, KEYWORD_MINIMASS
,
KEYWORD_NODECOLLISION
, KEYWORD_NODES
, KEYWORD_NODES2
, KEYWORD_PARTICLES
,
KEYWORD_PISTONPROPS
, KEYWORD_PROP_CAMERA_MODE
, KEYWORD_PROPS
, KEYWORD_RAILGROUPS
,
KEYWORD_RESCUER
, KEYWORD_RIGIDIFIERS
, KEYWORD_ROLLON
, KEYWORD_ROPABLES
,
KEYWORD_ROPES
, KEYWORD_ROTATORS
, KEYWORD_ROTATORS2
, KEYWORD_SCREWPROPS
,
KEYWORD_SECTION
, KEYWORD_SECTIONCONFIG
, KEYWORD_SET_BEAM_DEFAULTS
, KEYWORD_SET_BEAM_DEFAULTS_SCALE
,
KEYWORD_SET_COLLISION_RANGE
, KEYWORD_SET_INERTIA_DEFAULTS
, KEYWORD_SET_MANAGEDMATERIALS_OPTIONS
, KEYWORD_SET_NODE_DEFAULTS
,
KEYWORD_SET_SHADOWS
, KEYWORD_SET_SKELETON_SETTINGS
, KEYWORD_SHOCKS
, KEYWORD_SHOCKS2
,
KEYWORD_SLIDENODE_CONNECT_INSTANTLY
, KEYWORD_SLIDENODES
, KEYWORD_SLOPE_BRAKE
, KEYWORD_SOUNDSOURCES
,
KEYWORD_SOUNDSOURCES2
, KEYWORD_SPEEDLIMITER
, KEYWORD_SUBMESH
, KEYWORD_SUBMESH_GROUNDMODEL
,
KEYWORD_TEXCOORDS
, KEYWORD_TIES
, KEYWORD_TORQUECURVE
, KEYWORD_TRACTION_CONTROL
,
KEYWORD_TRIGGERS
, KEYWORD_TURBOJETS
, KEYWORD_TURBOPROPS
, KEYWORD_TURBOPROPS2
,
KEYWORD_VIDEOCAMERA
, KEYWORD_WHEELDETACHERS
, KEYWORD_WHEELS
, KEYWORD_WHEELS2
,
KEYWORD_WINGS
, KEYWORD_INVALID = 0xFFFFFFFF
} |
| |
◆ CASE
| #define CASE |
( |
|
_LOWER_ | ) |
case(_LOWER_): case((_LOWER_)-32) |
◆ DEFINE_REGEX_IGNORECASE
| #define DEFINE_REGEX_IGNORECASE |
( |
|
_NAME_, |
|
|
|
_REGEXP_ |
|
) |
| const std::regex _NAME_ = std::regex( _REGEXP_, std::regex::ECMAScript | std::regex::icase); |
◆ E_DELIMITER_SPACE
| #define E_DELIMITER_SPACE "[[:blank:]]+" |
◆ E_KEYWORD_BLOCK
| #define E_KEYWORD_BLOCK |
( |
|
_NAME_ | ) |
"(^" _NAME_ "[[:blank:]]*$)?" |
◆ E_KEYWORD_INLINE
◆ E_KEYWORD_INLINE_TOLERANT
| #define E_KEYWORD_INLINE_TOLERANT |
( |
|
_NAME_ | ) |
"(^" _NAME_ "[[:blank:],]+" ".*$)?" |
◆ IDENTIFY_KEYWORD_REGEX_STRING
| #define IDENTIFY_KEYWORD_REGEX_STRING |
◆ MATCH
| #define MATCH |
( |
|
_STR_, |
|
|
|
_KWORD_ |
|
) |
| if (stricmp(line+1, _STR_+1) == 0) return _KWORD_; |
◆ stricmp
| #define stricmp strcasecmp |
◆ strnicmp
| #define strnicmp strncasecmp |
◆ Keyword
| Enumerator |
|---|
| KEYWORD_ADD_ANIMATION | |
| KEYWORD_AIRBRAKES | |
| KEYWORD_ANIMATORS | |
| KEYWORD_ANTI_LOCK_BRAKES | |
| KEYWORD_AXLES | |
| KEYWORD_AUTHOR | |
| KEYWORD_BACKMESH | |
| KEYWORD_BEAMS | |
| KEYWORD_BRAKES | |
| KEYWORD_CAB | |
| KEYWORD_CAMERARAIL | |
| KEYWORD_CAMERAS | |
| KEYWORD_CINECAM | |
| KEYWORD_COLLISIONBOXES | |
| KEYWORD_COMMANDS | |
| KEYWORD_COMMANDS2 | |
| KEYWORD_CONTACTERS | |
| KEYWORD_CRUISECONTROL | |
| KEYWORD_DESCRIPTION | |
| KEYWORD_DETACHER_GROUP | |
| KEYWORD_DISABLEDEFAULTSOUNDS | |
| KEYWORD_ENABLE_ADVANCED_DEFORMATION | |
| KEYWORD_END | |
| KEYWORD_END_SECTION | |
| KEYWORD_ENGINE | |
| KEYWORD_ENGOPTION | |
| KEYWORD_ENGTURBO | |
| KEYWORD_ENVMAP | |
| KEYWORD_EXHAUSTS | |
| KEYWORD_EXTCAMERA | |
| KEYWORD_FILEFORMATVERSION | |
| KEYWORD_FILEINFO | |
| KEYWORD_FIXES | |
| KEYWORD_FLARES | |
| KEYWORD_FLARES2 | |
| KEYWORD_FLEXBODIES | |
| KEYWORD_FLEXBODY_CAMERA_MODE | |
| KEYWORD_FLEXBODYWHEELS | |
| KEYWORD_FORWARDCOMMANDS | |
| KEYWORD_FUSEDRAG | |
| KEYWORD_GLOBALS | |
| KEYWORD_GUID | |
| KEYWORD_GUISETTINGS | |
| KEYWORD_HELP | |
| KEYWORD_HIDE_IN_CHOOSER | |
| KEYWORD_HOOKGROUP | |
| KEYWORD_HOOKS | |
| KEYWORD_HYDROS | |
| KEYWORD_IMPORTCOMMANDS | |
| KEYWORD_LOCKGROUPS | |
| KEYWORD_LOCKGROUP_DEFAULT_NOLOCK | |
| KEYWORD_MANAGEDMATERIALS | |
| KEYWORD_MATERIALFLAREBINDINGS | |
| KEYWORD_MESHWHEELS | |
| KEYWORD_MESHWHEELS2 | |
| KEYWORD_MINIMASS | |
| KEYWORD_NODECOLLISION | |
| KEYWORD_NODES | |
| KEYWORD_NODES2 | |
| KEYWORD_PARTICLES | |
| KEYWORD_PISTONPROPS | |
| KEYWORD_PROP_CAMERA_MODE | |
| KEYWORD_PROPS | |
| KEYWORD_RAILGROUPS | |
| KEYWORD_RESCUER | |
| KEYWORD_RIGIDIFIERS | |
| KEYWORD_ROLLON | |
| KEYWORD_ROPABLES | |
| KEYWORD_ROPES | |
| KEYWORD_ROTATORS | |
| KEYWORD_ROTATORS2 | |
| KEYWORD_SCREWPROPS | |
| KEYWORD_SECTION | |
| KEYWORD_SECTIONCONFIG | |
| KEYWORD_SET_BEAM_DEFAULTS | |
| KEYWORD_SET_BEAM_DEFAULTS_SCALE | |
| KEYWORD_SET_COLLISION_RANGE | |
| KEYWORD_SET_INERTIA_DEFAULTS | |
| KEYWORD_SET_MANAGEDMATERIALS_OPTIONS | |
| KEYWORD_SET_NODE_DEFAULTS | |
| KEYWORD_SET_SHADOWS | |
| KEYWORD_SET_SKELETON_SETTINGS | |
| KEYWORD_SHOCKS | |
| KEYWORD_SHOCKS2 | |
| KEYWORD_SLIDENODE_CONNECT_INSTANTLY | |
| KEYWORD_SLIDENODES | |
| KEYWORD_SLOPE_BRAKE | |
| KEYWORD_SOUNDSOURCES | |
| KEYWORD_SOUNDSOURCES2 | |
| KEYWORD_SPEEDLIMITER | |
| KEYWORD_SUBMESH | |
| KEYWORD_SUBMESH_GROUNDMODEL | |
| KEYWORD_TEXCOORDS | |
| KEYWORD_TIES | |
| KEYWORD_TORQUECURVE | |
| KEYWORD_TRACTION_CONTROL | |
| KEYWORD_TRIGGERS | |
| KEYWORD_TURBOJETS | |
| KEYWORD_TURBOPROPS | |
| KEYWORD_TURBOPROPS2 | |
| KEYWORD_VIDEOCAMERA | |
| KEYWORD_WHEELDETACHERS | |
| KEYWORD_WHEELS | |
| KEYWORD_WHEELS2 | |
| KEYWORD_WINGS | |
| KEYWORD_INVALID | |
Definition at line 6 of file Bench_TruckParser_IdentifyKeyword.cpp.
◆ Bench_sol1__Regex()
| static void Bench_sol1__Regex |
( |
benchmark::State & |
state | ) |
|
|
static |
◆ Bench_sol1b_RegexPreCond()
| static void Bench_sol1b_RegexPreCond |
( |
benchmark::State & |
state | ) |
|
|
static |
◆ Bench_sol1c_RegexPreCondIsdigit()
| static void Bench_sol1c_RegexPreCondIsdigit |
( |
benchmark::State & |
state | ) |
|
|
static |
◆ Bench_sol1d_RegexPreCondIsAlpha()
| static void Bench_sol1d_RegexPreCondIsAlpha |
( |
benchmark::State & |
state | ) |
|
|
static |
◆ Bench_sol2__Switch()
| static void Bench_sol2__Switch |
( |
benchmark::State & |
state | ) |
|
|
static |
◆ Bench_sol2b_SwitchPreCond()
| static void Bench_sol2b_SwitchPreCond |
( |
benchmark::State & |
state | ) |
|
|
static |
◆ BENCHMARK() [1/6]
◆ BENCHMARK() [2/6]
◆ BENCHMARK() [3/6]
◆ BENCHMARK() [4/6]
◆ BENCHMARK() [5/6]
◆ BENCHMARK() [6/6]
◆ FindKeywordMatch()
| unsigned FindKeywordMatch |
( |
std::smatch & |
search_results | ) |
|
◆ IdentifyKeywordSwitch()
| Keyword IdentifyKeywordSwitch |
( |
const char * |
line | ) |
|
◆ main()
| int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
◆ PrepareBench_sol1()
| void PrepareBench_sol1 |
( |
| ) |
|
◆ keyword
◆ lines_vec
| std::vector<std::string> lines_vec |
◆ trucklines