Skip to content

Commit

Permalink
Playground fix
Browse files Browse the repository at this point in the history
  • Loading branch information
rsashka committed Mar 23, 2024
1 parent 8c1bdf4 commit a0a4f12
Show file tree
Hide file tree
Showing 11 changed files with 2,876 additions and 1,305 deletions.
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!doctype html>
<html itemscope itemtype="http://schema.org/WebPage" lang="en" class="no-js">
<head>
<meta name="generator" content="Hugo 0.124.0"><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta name="generator" content="Hugo 0.124.1"><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="alternate" type="application/rss&#43;xml" href="http://localhost:1313/index.xml">
Expand Down
43 changes: 27 additions & 16 deletions docs/playground/_print/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -144,25 +144,32 @@
</div>
<script>

if(window.location.search){
const params = new Proxy(new URLSearchParams(window.location.search), {
get: (searchParams, prop) => searchParams.get(prop),
});
// Get the value of "src" in eg "https://example.com/?src=source"
if(params.src){
document.getElementById('playground').value = unescape(params.src);
}
//alert(escape('#!../output/nlc \n\nprint(\'Hello, world!\\n\');\n'));
// %23%21../output/nlc%20%0A%0Aprint%28%27Hello%2C%20world%21%5Cn%27%29%3B%0A
}

locations =[ "",
"#!../output/nlc \n\nprint('Hello, world!\\n');\n",
"#!../output/nlc \n\nfact := 1\\1; # Rational value support bigint\nmult := @iter(1000..1..-1); # Iterator from range\n@while( @curr(mult) ) {\n fact *= @next(mult);\n};\n\n# Check factorial 1000!\n@assert( fact == 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\\1 );\n\n# Return result\nfact",
"#!../output/nlc \n\n### Example of calculating factorial of 40 using basic syntax\n\nfact := 1\\1; # Rational number 1 (no precision limit)\nmult := 40..1..-1?; # Iterator from range for factors from 40 to 2\n[mult ?!] <-> { # Loop until the iterator data runs out\n fact *= mult !; # Get the current multiplier and move to the next iterator element\n};\n\n@assert(fact == 815915283247897734345611269596115894272000000000\\1);\n\nfact # Return final result\n",
"#!../output/nlc \n\n### Example of calculating factorial 40 using DSL syntax\n\nfact := 1\\1; # Rational number 1 (no precision limit)\nmult := @iter( 40..1..-1 ); # Iterator from range for factors from 40 to 2\n@while( @curr(mult)) { # Loop until the iterator data runs out\n fact *= @next(mult); # Get the current multiplier and move to the next iterator element\n};\n\n@assert(fact == 815915283247897734345611269596115894272000000000\\1);\n\nfact # Return final result\n",
"#!../output/nlc --eval\n\n# Create a tensor and fill it with values. \n# The last value is repeated up to the required tensor size\ntensor := :Single[2,5](-1, 0, 1, 2, 3, ... );\nprint('1: tensor = %s\\n', :StrChar(tensor));\n\nmult := tensor * 10;\nprint('2: tensor *= 10 -> %s\\n', :StrChar(mult));\n\nmult += 11;\nprint('3: tensor += 11 -> %s\\n', :StrChar(mult));\n\n# Import srand function and init random generator\nsrand(seed:Int32):None := %srand ...;\nsrand(100);\n\n# Import rand function to get random values\nrnd():Int32 := %rand ...;\nprint('4: %d, %d, %d, %d\\n', rnd(), rnd(), rnd(), rnd());\n\n# Create a tensor where the rand function is called for every element except the first\nmatrix := :Tensor[10,10]( 0, 42, ... rnd() ...);\nprint('5: matrix = %s\\n', :StrChar(matrix));\n\nmatrix //= 42;\nprint('6: matrix %%= 2 -> %s\\n', :StrChar(matrix));\nprint('7: matrix %%= 2 -> %s\\n', :StrChar(:Bool(matrix)));\n",

/*option 4*/
"#!../output/nlc --eval-file\n\nprintf('Hello, world!');\n",

/*option 5*/
"etc...", ];
];

function SelectExample(sel){

srcLocation = locations[sel.selectedIndex];
if (srcLocation != undefined && srcLocation != "") {
obj = document.getElementById('playground');
obj.value= locations [sel.selectedIndex];
obj.value = locations[sel.selectedIndex];
input_changed(obj);
}
}
Expand Down Expand Up @@ -248,11 +255,15 @@

// 1. Создаём новый XMLHttpRequest-объект
let xhr = new XMLHttpRequest();
xhr.timeout = 10000;
xhr.timeout = 5000;
xhr.responseType = 'json';

let server = 'http://81.200.157.226';
if(window.location.hostname == 'localhost'){
server = 'http://localhost:80';
}

let url = new URL('/cgi-bin/playground.cgi?'+escape(document.getElementById('playground').value), 'http://localhost');
//url.searchParams.set('q', document.getElementById('playground').value);
let url = new URL('/cgi-bin/playground.cgi?'+escape(document.getElementById('playground').value), server);

// 2. Настраиваем его: GET-запрос по URL /article/.../load
xhr.open('GET', url);
Expand All @@ -273,11 +284,12 @@
}

if (xhr.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка
//alert(`Ошибка ${xhr.status}: ${xhr.statusText}`); // Например, 404: Not Found
//out.classList.add("error");
alert(`Error ${xhr.status}: ${xhr.statusText}`); // Например, 404: Not Found
out.classList.add("error");
//document.getElementById('playground_out').value = unescape(xhr.response.out);
} else { // если всё прошло гладко, выводим результат
//alert(`Готово, получили ${xhr.response.length} байт`); // response -- это ответ сервера
//out.classList.remove("error");
//alert(`Готово, получили ${xhr.response.length} байт`); // response -- это ответ сервера
out.classList.remove("error");
}
};

Expand All @@ -292,8 +304,7 @@

xhr.onerror = function() {
document.getElementById('playground_out').classList.add("error");

//alert("Запрос не удался");
alert("Request failed!");
};
}
</script>
Expand Down
43 changes: 27 additions & 16 deletions docs/playground/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -144,25 +144,32 @@
</div>
<script>

if(window.location.search){
const params = new Proxy(new URLSearchParams(window.location.search), {
get: (searchParams, prop) => searchParams.get(prop),
});
// Get the value of "src" in eg "https://example.com/?src=source"
if(params.src){
document.getElementById('playground').value = unescape(params.src);
}
//alert(escape('#!../output/nlc \n\nprint(\'Hello, world!\\n\');\n'));
// %23%21../output/nlc%20%0A%0Aprint%28%27Hello%2C%20world%21%5Cn%27%29%3B%0A
}

locations =[ "",
"#!../output/nlc \n\nprint('Hello, world!\\n');\n",
"#!../output/nlc \n\nfact := 1\\1; # Rational value support bigint\nmult := @iter(1000..1..-1); # Iterator from range\n@while( @curr(mult) ) {\n fact *= @next(mult);\n};\n\n# Check factorial 1000!\n@assert( fact == 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\\1 );\n\n# Return result\nfact",
"#!../output/nlc \n\n### Example of calculating factorial of 40 using basic syntax\n\nfact := 1\\1; # Rational number 1 (no precision limit)\nmult := 40..1..-1?; # Iterator from range for factors from 40 to 2\n[mult ?!] <-> { # Loop until the iterator data runs out\n fact *= mult !; # Get the current multiplier and move to the next iterator element\n};\n\n@assert(fact == 815915283247897734345611269596115894272000000000\\1);\n\nfact # Return final result\n",
"#!../output/nlc \n\n### Example of calculating factorial 40 using DSL syntax\n\nfact := 1\\1; # Rational number 1 (no precision limit)\nmult := @iter( 40..1..-1 ); # Iterator from range for factors from 40 to 2\n@while( @curr(mult)) { # Loop until the iterator data runs out\n fact *= @next(mult); # Get the current multiplier and move to the next iterator element\n};\n\n@assert(fact == 815915283247897734345611269596115894272000000000\\1);\n\nfact # Return final result\n",
"#!../output/nlc --eval\n\n# Create a tensor and fill it with values. \n# The last value is repeated up to the required tensor size\ntensor := :Single[2,5](-1, 0, 1, 2, 3, ... );\nprint('1: tensor = %s\\n', :StrChar(tensor));\n\nmult := tensor * 10;\nprint('2: tensor *= 10 -> %s\\n', :StrChar(mult));\n\nmult += 11;\nprint('3: tensor += 11 -> %s\\n', :StrChar(mult));\n\n# Import srand function and init random generator\nsrand(seed:Int32):None := %srand ...;\nsrand(100);\n\n# Import rand function to get random values\nrnd():Int32 := %rand ...;\nprint('4: %d, %d, %d, %d\\n', rnd(), rnd(), rnd(), rnd());\n\n# Create a tensor where the rand function is called for every element except the first\nmatrix := :Tensor[10,10]( 0, 42, ... rnd() ...);\nprint('5: matrix = %s\\n', :StrChar(matrix));\n\nmatrix //= 42;\nprint('6: matrix %%= 2 -> %s\\n', :StrChar(matrix));\nprint('7: matrix %%= 2 -> %s\\n', :StrChar(:Bool(matrix)));\n",

/*option 4*/
"#!../output/nlc --eval-file\n\nprintf('Hello, world!');\n",

/*option 5*/
"etc...", ];
];

function SelectExample(sel){

srcLocation = locations[sel.selectedIndex];
if (srcLocation != undefined && srcLocation != "") {
obj = document.getElementById('playground');
obj.value= locations [sel.selectedIndex];
obj.value = locations[sel.selectedIndex];
input_changed(obj);
}
}
Expand Down Expand Up @@ -248,11 +255,15 @@

// 1. Создаём новый XMLHttpRequest-объект
let xhr = new XMLHttpRequest();
xhr.timeout = 10000;
xhr.timeout = 5000;
xhr.responseType = 'json';

let server = 'http://81.200.157.226';
if(window.location.hostname == 'localhost'){
server = 'http://localhost:80';
}

let url = new URL('/cgi-bin/playground.cgi?'+escape(document.getElementById('playground').value), 'http://localhost');
//url.searchParams.set('q', document.getElementById('playground').value);
let url = new URL('/cgi-bin/playground.cgi?'+escape(document.getElementById('playground').value), server);

// 2. Настраиваем его: GET-запрос по URL /article/.../load
xhr.open('GET', url);
Expand All @@ -273,11 +284,12 @@
}

if (xhr.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка
//alert(`Ошибка ${xhr.status}: ${xhr.statusText}`); // Например, 404: Not Found
//out.classList.add("error");
alert(`Error ${xhr.status}: ${xhr.statusText}`); // Например, 404: Not Found
out.classList.add("error");
//document.getElementById('playground_out').value = unescape(xhr.response.out);
} else { // если всё прошло гладко, выводим результат
//alert(`Готово, получили ${xhr.response.length} байт`); // response -- это ответ сервера
//out.classList.remove("error");
//alert(`Готово, получили ${xhr.response.length} байт`); // response -- это ответ сервера
out.classList.remove("error");
}
};

Expand All @@ -292,8 +304,7 @@

xhr.onerror = function() {
document.getElementById('playground_out').classList.add("error");

//alert("Запрос не удался");
alert("Request failed!");
};
}
</script>
Expand Down
2 changes: 1 addition & 1 deletion docs/ru/index.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!doctype html>
<html itemscope itemtype="http://schema.org/WebPage" lang="ru" class="no-js">
<head>
<meta name="generator" content="Hugo 0.124.0"><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta name="generator" content="Hugo 0.124.1"><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="alternate" type="application/rss&#43;xml" href="http://localhost:1313/ru/index.xml">
Expand Down
Loading

0 comments on commit a0a4f12

Please sign in to comment.