expandMacros method
Implementation
String expandMacros(String origSQL) {
var result = origSQL;
if (!macroCheck) return result;
// Terminators = SQLDelimiterCharacters + [#0,'=','+','-','*','\','/','[',']','|']
final termArr = <String>{
...sqlDelimiterCharacters,
"=", "+", "-", "*", "\\", "/", "[", "]", "|",
macroChar,
};
result = '';
var macroFlag = false;
var tempMacroName = '';
void substituteMacro() {
final param = macros.findParam(tempMacroName);
if (param != null) {
result = result + param.asString;
} else {
result = '$result$macroChar$tempMacroName';
}
tempMacroName = '';
}
for (var i = 0; i < origSQL.length; i++) {
final ch = origSQL[i];
if (!macroFlag && ch == macroChar) {
macroFlag = true;
tempMacroName = '';
} else if (macroFlag) {
if (!termArr.contains(ch)) {
tempMacroName = tempMacroName + ch;
} else {
substituteMacro();
if (ch != macroChar) {
macroFlag = false;
}
tempMacroName = '';
}
}
if (!macroFlag) {
result = result + ch;
}
}
if (tempMacroName != '') {
substituteMacro();
}
return result;
}