44 lines
906 B
Python
44 lines
906 B
Python
def detectType(value: str) -> str:
|
|
val = value.strip()
|
|
# Boolean check
|
|
if val.lower() in {'true', 'false'}:
|
|
return 'Boolean'
|
|
|
|
# Int check
|
|
try:
|
|
int(val)
|
|
return 'Int'
|
|
except ValueError:
|
|
pass
|
|
|
|
# Float check
|
|
try:
|
|
float(val)
|
|
return 'Float'
|
|
except ValueError:
|
|
pass
|
|
|
|
# Default to String
|
|
return 'String'
|
|
|
|
def typeToCType(valType: str) -> str:
|
|
if valType == 'Int':
|
|
return 'int'
|
|
elif valType == 'Float':
|
|
return 'float'
|
|
elif valType == 'Boolean':
|
|
return 'bool'
|
|
else:
|
|
return 'char_t*'
|
|
|
|
def stringToCType(value: str) -> str:
|
|
valType = detectType(value)
|
|
if valType == 'Int':
|
|
return str(int(value))
|
|
elif valType == 'Float':
|
|
return str(float(value))
|
|
elif valType == 'Boolean':
|
|
return 'true' if value.lower() == 'true' else 'false'
|
|
else:
|
|
escaped = value.replace('\\', '\\\\').replace('"', '\\"')
|
|
return f'"{escaped}"' |