diff --git a/src/compiler/parser.cpp b/src/compiler/parser.cpp
index 8aabdc7..dc4bf48 100644
--- a/src/compiler/parser.cpp
+++ b/src/compiler/parser.cpp
@@ -318,6 +318,38 @@ namespace Tesses::CrossLang
})
}));
}
+ else if(tagName == "plink")
+ {
+ EnsureSymbol("(");
+ SyntaxNode expr = ParseExpression();
+
+ EnsureSymbol(")");
+ EnsureSymbol(">");
+
+ nodes.push_back(AdvancedSyntaxNode::Create(CompoundAssignExpression,true,{
+ AdvancedSyntaxNode::Create(AddExpression,true,{
+ AdvancedSyntaxNode::Create(GetVariableExpression,true,{var}),
+ AdvancedSyntaxNode::Create(AddExpression,true,{
+ "
",
+ AdvancedSyntaxNode::Create(AddExpression,true,{
+ AdvancedSyntaxNode::Create(FunctionCallExpression,true,{
+ AdvancedSyntaxNode::Create(GetFieldExpression,true,{
+ AdvancedSyntaxNode::Create(GetFieldExpression,true,{
+ AdvancedSyntaxNode::Create(GetVariableExpression,true,{"Net"}),
+ "Http"
+ })
+ ,
+ "HtmlP"
+ }),
+ expr
+ })
+ ,
+ "
"
+ })
+ })
+ })
+ }));
+ }
else if(tagName == "if")
{
EnsureSymbol("(");
diff --git a/src/runtime_methods/net.cpp b/src/runtime_methods/net.cpp
index ea1b290..521794a 100644
--- a/src/runtime_methods/net.cpp
+++ b/src/runtime_methods/net.cpp
@@ -1327,6 +1327,26 @@ namespace Tesses::CrossLang
}
return nullptr;
}
+
+ static TObject Net_Http_HtmlP(GCList& ls, std::vector args)
+ {
+ std::string str;
+ if(GetArgument(args,0,str))
+ {
+ return HttpUtils::HtmlP(str);
+ }
+ return "";
+ }
+
+ static TObject Net_Http_StatusCodeString(GCList& ls, std::vector args)
+ {
+ int64_t sc;
+ if(GetArgument(args,0,sc))
+ {
+ return HttpUtils::StatusCodeString((StatusCode)sc);
+ }
+ return "";
+ }
void TStd::RegisterNet(GC* gc, TRootEnvironment* env)
{
@@ -1337,6 +1357,8 @@ namespace Tesses::CrossLang
TDictionary* http = TDictionary::Create(ls);
TDictionary* smtp = TDictionary::Create(ls);
+ http->DeclareFunction(gc, "StatusCodeString", "Get the status code string",{"statusCode"},Net_Http_StatusCodeString);
+ http->DeclareFunction(gc, "HtmlP", "Linkify text", {"text"},Net_Http_HtmlP);
http->DeclareFunction(gc, "HtmlEncode","Html encode",{"param"}, Net_HtmlEncode);
http->DeclareFunction(gc, "UrlEncode","Url encode query param",{"param"}, Net_UrlEncode);
diff --git a/src/runtime_methods/sqlite.cpp b/src/runtime_methods/sqlite.cpp
index 47ca5e0..e9e7599 100644
--- a/src/runtime_methods/sqlite.cpp
+++ b/src/runtime_methods/sqlite.cpp
@@ -116,13 +116,30 @@ namespace Tesses::CrossLang {
TObject Sqlite_Escape(GCList& ls, std::vector args)
{
+ int64_t n;
+ double d;
+ bool b;
+
+
std::string str;
if(GetArgument(args,0,str))
{
return SQLiteDatabase::Escape(str);
}
+ if(GetArgument(args,0,n))
+ {
+ return std::to_string(n);
+ }
+ if(GetArgument(args,0,b))
+ {
+ return b ? "1" : "0";
+ }
+ if(GetArgument(args,0,d))
+ {
+ return std::to_string(d);
+ }
- return Undefined();
+ return "NULL";
}
TObject Sqlite_Close(GCList& ls, std::vector args)