diff options
Diffstat (limited to 'include/HFacer.py')
-rw-r--r-- | include/HFacer.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/include/HFacer.py b/include/HFacer.py new file mode 100644 index 000000000..c4100fdf9 --- /dev/null +++ b/include/HFacer.py @@ -0,0 +1,65 @@ +import string +import sys +import os +import Face + +def DEFINEName(ifaceName): + featureDefineName = string.upper(ifaceName) + if "_" not in featureDefineName: + featureDefineName = "SCI_" + featureDefineName + return featureDefineName + +def Contains(s,sub): + return string.find(s, sub) != -1 + +def printLexHFile(f,out): + for name in f.order: + v = f.features[name] + if v["FeatureType"] in ["val"]: + if Contains(name, "SCE_") or Contains(name, "SCLEX_"): + out.write("#define " + name + " " + v["Value"] + "\n") + +def printHFile(f,out): + for name in f.order: + v = f.features[name] + if v["Category"] != "Deprecated": + if v["FeatureType"] in ["fun", "get", "set"]: + featureDefineName = "SCI_" + string.upper(name) + out.write("#define " + featureDefineName + " " + v["Value"] + "\n") + elif v["FeatureType"] in ["evt"]: + featureDefineName = "SCN_" + string.upper(name) + out.write("#define " + featureDefineName + " " + v["Value"] + "\n") + elif v["FeatureType"] in ["val"]: + if not (Contains(name, "SCE_") or Contains(name, "SCLEX_")): + out.write("#define " + name + " " + v["Value"] + "\n") + +def CopyWithInsertion(input, output, gen, definition): + copying = 1 + for line in input.readlines(): + if copying: + out.write(line) + if Contains(line, "//++Autogenerated"): + copying = 0 + gen(definition, out) + if Contains(line, "//--Autogenerated"): + copying = 1 + out.write(line) + +f = Face.Face() +f.ReadFromFile("Scintilla.iface") + +out = open("Sci.h","w") +hfile = open("Scintilla.h") +CopyWithInsertion(hfile, out, printHFile, f) +out.close() +hfile.close() +os.unlink("Scintilla.h") +os.rename("Sci.h", "Scintilla.h") + +out = open("SciL.h","w") +lexhfile = open("SciLexer.h") +CopyWithInsertion(lexhfile, out, printLexHFile, f) +out.close() +lexhfile.close() +os.unlink("SciLexer.h") +os.rename("SciL.h", "SciLexer.h") |