Module: kamailio Branch: master Commit: 7658cc9fdbfaba2001d538dbef23deaec4af8557 URL: https://github.com/kamailio/kamailio/commit/7658cc9fdbfaba2001d538dbef23deae...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2021-12-10T08:57:38+01:00
misc: kemi-code-gen.py - generate code for sqlang functions with xval return
---
Modified: misc/tools/kemi/kemi-code-gen.py
---
Diff: https://github.com/kamailio/kamailio/commit/7658cc9fdbfaba2001d538dbef23deae... Patch: https://github.com/kamailio/kamailio/commit/7658cc9fdbfaba2001d538dbef23deae...
---
diff --git a/misc/tools/kemi/kemi-code-gen.py b/misc/tools/kemi/kemi-code-gen.py index 7def9fcf25..b7b4bba8c8 100644 --- a/misc/tools/kemi/kemi-code-gen.py +++ b/misc/tools/kemi/kemi-code-gen.py @@ -4,7 +4,7 @@
PRINTPARAMS=3 # - print mode: typedefs, js, lua, python, pythonparams, ruby, sqlang -PRINTMODE="ruby" +PRINTMODE="sqlang" # - two tabs for python params, three for the other cases # PRINTTABS="\t\t" PRINTTABS="\t\t\t" @@ -169,33 +169,16 @@ def printCodeIfRuby(prefix):
def printCodeIfSQLang(prefix): global PRINTELSE - sfunc = PRINTTABS + "\tret = ((sr_kemi_fm" + prefix + "_f)(ket->func))(env_J->msg,\n" + PRINTTABS + "\t\t\t" - for i, c in enumerate(prefix): - if i==0: - if c == 's': - print(PRINTTABS + PRINTELSE + "if(ket->ptypes[0]==SR_KEMIP_STR") - sfunc += "&vps[" + str(i) +"].s, " - else: - print(PRINTTABS + PRINTELSE + "if(ket->ptypes[0]==SR_KEMIP_INT") - sfunc += "vps[" + str(i) +"].n, " - PRINTELSE = "} else " - elif i==PRINTPARAMS-1: - if c == 's': - print(PRINTTABS + "\t\t&& ket->ptypes[" + str(i) + "]==SR_KEMIP_STR) {") - sfunc += "&vps[" + str(i) +"].s);" - else: - print(PRINTTABS + "\t\t&& ket->ptypes[" + str(i) + "]==SR_KEMIP_INT) {") - sfunc += "vps[" + str(i) +"].n);" - else: - if c == 's': - print(PRINTTABS + "\t\t&& ket->ptypes[" + str(i) + "]==SR_KEMIP_STR") - sfunc += "&vps[" + str(i) +"].s, " - else: - print(PRINTTABS + "\t\t&& ket->ptypes[" + str(i) + "]==SR_KEMIP_INT") - sfunc += "vps[" + str(i) +"].n, " - - print(sfunc) - print(PRINTTABS + "\treturn sr_kemi_sqlang_return_int(J, ket, ret);") + sparams = printCodeIfParams(prefix) + print("\t\t\t\tif(ket->rtype==SR_KEMIP_XVAL) {") + sfunc = PRINTTABS + "\t\txret = ((sr_kemi_xfm" + prefix + "_f)(ket->func))(env_J->msg,\n" + PRINTTABS + "\t\t\t" + print(sfunc + sparams) + print(PRINTTABS + "\t\treturn sr_kemi_sqlang_return_xval(J, ket, xret);") + print("\t\t\t\t} else {") + sfunc = PRINTTABS + "\t\tret = ((sr_kemi_fm" + prefix + "_f)(ket->func))(env_J->msg,\n" + PRINTTABS + "\t\t\t" + print(sfunc + sparams) + print(PRINTTABS + "\t\treturn sr_kemi_sqlang_return_int(J, ket, ret);") + print("\t\t\t\t}")
# generated possible strings of length k with chars from set.