fix build under newer KConfig by bump cmake min version

This commit is contained in:
2024-09-04 19:01:58 +08:00
parent 727a2ec214
commit 9fb3681e3a
1022 changed files with 4414 additions and 1375 deletions

View File

@ -0,0 +1,7 @@
<!DOCTYPE html>
<html>
<script>
var example = "<!-- -->"; // closing "-->" is string
var example2 = '<!-- -->'; // closing "-->" is string
</script>
</html>

View File

@ -0,0 +1,8 @@
0 400 0 <!DOCTYPE html>
2 400 0 + <html>
2 401 0 + <script>
0 402 0 | var example = "<!-- -->"; // closing "-->" is string
0 402 0 | var example2 = '<!-- -->'; // closing "-->" is string
0 402 0 | </script>
0 401 0 | </html>
0 400 0

View File

@ -0,0 +1,7 @@
{21}<!{26}DOCTYPE html{21}>{0}
{1}<html>{0}
{1}<script>{40}
{41} {47}var{41} {46}example{41} {50}={41} {48}"<!-- -->"{50};{41} {43}// closing "-->" is string{41}
{47}var{41} {46}example2{41} {50}={41} {49}'<!-- -->'{50};{41} {43}// closing "-->" is string{41}
{1}</script>{0}
{1}</html>{0}

View File

@ -0,0 +1,6 @@
<script>
/**
*/
</script>

View File

@ -0,0 +1,7 @@
2 400 0 + <script>
1 401 0 |
2 401 0 + /**
0 402 0 | */
1 401 0 |
0 401 0 | </script>
0 400 0

View File

@ -0,0 +1,6 @@
{1}<script>{40}
{44}/**
*/{41}
{1}</script>{0}

View File

@ -0,0 +1,30 @@
<?php
$number = 1_234;
$var = 'variable value';
$test = [
<<<EOTEST
string $var string EOTEST
EOTEST_NOT
EOTEST,
0b00_01,
<<<"EOTEST"
"string" "$var" "string" EOTEST
EOTEST_NOT
EOTEST,
0x00_02,
<<<'EOTEST'
'string' '$var' 'string' EOTEST
EOTEST_NOT
EOTEST,
0x00_03,
];
print_r($test);
# Attribute tests
#[SingleLineAnnotation('string', 1, null)]
#[
MultiLineAnnotation('string', 1, null)
]
?>

View File

@ -0,0 +1,31 @@
2 400 0 + <?php
1 401 0 |
0 401 0 | $number = 1_234;
0 401 0 | $var = 'variable value';
0 401 0 | $test = [
0 401 0 | <<<EOTEST
0 401 0 | string $var string EOTEST
0 401 0 | EOTEST_NOT
0 401 0 | EOTEST,
0 401 0 | 0b00_01,
0 401 0 | <<<"EOTEST"
0 401 0 | "string" "$var" "string" EOTEST
0 401 0 | EOTEST_NOT
0 401 0 | EOTEST,
0 401 0 | 0x00_02,
0 401 0 | <<<'EOTEST'
0 401 0 | 'string' '$var' 'string' EOTEST
0 401 0 | EOTEST_NOT
0 401 0 | EOTEST,
0 401 0 | 0x00_03,
0 401 0 | ];
0 401 0 | print_r($test);
1 401 0 |
0 401 0 | # Attribute tests
0 401 0 | #[SingleLineAnnotation('string', 1, null)]
0 401 0 | #[
0 401 0 | MultiLineAnnotation('string', 1, null)
0 401 0 | ]
1 401 0 |
0 401 0 | ?>
0 400 0

View File

@ -0,0 +1,30 @@
{18}<?php{118}
{123}$number{118} {127}={118} {122}1_234{127};{118}
{123}$var{118} {127}={118} {120}'variable value'{127};{118}
{123}$test{118} {127}={118} {127}[{118}
{119}<<<EOTEST
string {126}$var{119} string EOTEST
EOTEST_NOT
EOTEST{127},{118}
{122}0b00_01{127},{118}
{119}<<<"EOTEST"
"string" "{126}$var{119}" "string" EOTEST
EOTEST_NOT
EOTEST{127},{118}
{122}0x00_02{127},{118}
{120}<<<'EOTEST'
'string' '$var' 'string' EOTEST
EOTEST_NOT
EOTEST{127},{118}
{122}0x00_03{127},{118}
{127}];{118}
print_r{127}({123}$test{127});{118}
{125}# Attribute tests{118}
#{127}[{118}SingleLineAnnotation{127}({120}'string'{127},{118} {122}1{127},{118} null{127})]{118}
#{127}[{118}
MultiLineAnnotation{127}({120}'string'{127},{118} {122}1{127},{118} null{127}){118}
{127}]{118}
{18}?>{0}

View File

@ -0,0 +1,20 @@
&
&1
&A
&
&amp<br />
&1<br />
&A<br />
&<br />
&&amp;
&#1;
&#1;
&A;<br />
&#1;<br />
&#1;<br />
&amp
&lt;
&lt;<br />
&b.eps;
&b.eps!
&—;

View File

@ -0,0 +1,21 @@
0 400 0 &
0 400 0 &1
0 400 0 &A
0 400 0 &中
0 400 0 &amp<br />
0 400 0 &1<br />
0 400 0 &A<br />
0 400 0 &中<br />
0 400 0 &&amp;
0 400 0 &#1;
0 400 0 &#1;中
0 400 0 &A;<br />
0 400 0 &#1;<br />
0 400 0 &#1;中<br />
0 400 0 &amp
0 400 0 &lt;
0 400 0 &lt;<br />
0 400 0 &b.eps;
0 400 0 &b.eps!
0 400 0 &—;
0 400 0

View File

@ -0,0 +1,20 @@
{2}&{0}
{2}&1{0}
{2}&A{0}
{2}&{0}中
{2}&amp{1}<br{8} {11}/>{0}
{2}&1{1}<br{8} {11}/>{0}
{2}&A{1}<br{8} {11}/>{0}
{2}&{0}中{1}<br{8} {11}/>{0}
{2}&{10}&amp;{0}
{10}&#1;{0}
{10}&#1;{0}中
{10}&A;{1}<br{8} {11}/>{0}
{10}&#1;{1}<br{8} {11}/>{0}
{10}&#1;{0}中{1}<br{8} {11}/>{0}
{2}&amp{0}
{10}&lt;{0}
{10}&lt;{1}<br{8} {11}/>{0}
{10}&b.eps;{0}
{2}&b.eps{0}!
{2}&{0}—;

View File

@ -0,0 +1,30 @@
<?php
123456; 123_456; // +
1234z6; 123456_; 123__456; // -
0x89Ab; 0x89_aB; // +
0x89zB; 0x89AB_; 0x_89AB; 0_x89AB; 0x89__AB; // -
1234.; 1234.e-0; 1234e+0; 1234e0; 1234e0.PHP_EOL; // +
1234._; 1234.e-; 1234e+; 1234e; // -
.1234; .12e0; // +
.12.0e0; .12e0.0; .12e0e0; // -
1.234e-10; 1.2_34e-1_0; // +
1.234e-_10; 1.234e_-10; 1.234_e-10; 1._234e-10; 1_.234e-10; // -
1.234e-+10; 1.234e-_+10; // -
01234567; 0_1234567; // +
012345678; // -
0...0; // 0. . .0
.0..0; // .0 . .0
0e+0+0e+0; // 0e+0 + 0e+0
;0#comment
;0//comment
;0/*comment*/;
?>

View File

@ -0,0 +1,31 @@
2 400 0 + <?php
1 401 0 |
0 401 0 | 123456; 123_456; // +
0 401 0 | 1234z6; 123456_; 123__456; // -
1 401 0 |
0 401 0 | 0x89Ab; 0x89_aB; // +
0 401 0 | 0x89zB; 0x89AB_; 0x_89AB; 0_x89AB; 0x89__AB; // -
1 401 0 |
0 401 0 | 1234.; 1234.e-0; 1234e+0; 1234e0; 1234e0.PHP_EOL; // +
0 401 0 | 1234._; 1234.e-; 1234e+; 1234e; // -
1 401 0 |
0 401 0 | .1234; .12e0; // +
0 401 0 | .12.0e0; .12e0.0; .12e0e0; // -
1 401 0 |
0 401 0 | 1.234e-10; 1.2_34e-1_0; // +
0 401 0 | 1.234e-_10; 1.234e_-10; 1.234_e-10; 1._234e-10; 1_.234e-10; // -
0 401 0 | 1.234e-+10; 1.234e-_+10; // -
1 401 0 |
0 401 0 | 01234567; 0_1234567; // +
0 401 0 | 012345678; // -
1 401 0 |
0 401 0 | 0...0; // 0. . .0
0 401 0 | .0..0; // .0 . .0
0 401 0 | 0e+0+0e+0; // 0e+0 + 0e+0
1 401 0 |
0 401 0 | ;0#comment
0 401 0 | ;0//comment
0 401 0 | ;0/*comment*/;
1 401 0 |
0 401 0 | ?>
0 400 0

View File

@ -0,0 +1,30 @@
{18}<?php{118}
{122}123456{127};{118} {122}123_456{127};{118} {125}// +{118}
1234z6{127};{118} 123456_{127};{118} 123__456{127};{118} {125}// -{118}
{122}0x89Ab{127};{118} {122}0x89_aB{127};{118} {125}// +{118}
0x89zB{127};{118} 0x89AB_{127};{118} 0x_89AB{127};{118} 0_x89AB{127};{118} 0x89__AB{127};{118} {125}// -{118}
{122}1234.{127};{118} {122}1234.e-0{127};{118} {122}1234e+0{127};{118} {122}1234e0{127};{118} {122}1234e0{127}.{118}PHP_EOL{127};{118} {125}// +{118}
1234._{127};{118} 1234.e-{127};{118} 1234e+{127};{118} 1234e{127};{118} {125}// -{118}
{122}.1234{127};{118} {122}.12e0{127};{118} {125}// +{118}
.12.0e0{127};{118} .12e0.0{127};{118} .12e0e0{127};{118} {125}// -{118}
{122}1.234e-10{127};{118} {122}1.2_34e-1_0{127};{118} {125}// +{118}
1.234e-_10{127};{118} 1.234e_-10{127};{118} 1.234_e-10{127};{118} 1._234e-10{127};{118} 1_.234e-10{127};{118} {125}// -{118}
1.234e-+10{127};{118} 1.234e-_+10{127};{118} {125}// -{118}
{122}01234567{127};{118} {122}0_1234567{127};{118} {125}// +{118}
012345678{127};{118} {125}// -{118}
{122}0.{127}.{122}.0{127};{118} {125}// 0. . .0{118}
{122}.0{127}.{122}.0{127};{118} {125}// .0 . .0{118}
{122}0e+0{127}+{122}0e+0{127};{118} {125}// 0e+0 + 0e+0{118}
{127};{122}0{125}#comment{118}
{127};{122}0{125}//comment{118}
{127};{122}0{124}/*comment*/{127};{118}
{18}?>{0}

View File

@ -0,0 +1,5 @@
<script>
/a|b/i.test("baby");
// arrow function
() => /a|b/i.test("baby");
</script>

View File

@ -0,0 +1,6 @@
2 400 0 + <script>
0 401 0 | /a|b/i.test("baby");
0 401 0 | // arrow function
0 401 0 | () => /a|b/i.test("baby");
0 401 0 | </script>
0 400 0

View File

@ -0,0 +1,5 @@
{1}<script>{40}
{52}/a|b/i{46}.test{50}({48}"baby"{50});{41}
{43}// arrow function{41}
{50}(){41} {50}=>{41} {52}/a|b/i{46}.test{50}({48}"baby"{50});{41}
{1}</script>{0}

View File

@ -0,0 +1,22 @@
<!-- Check PHP start tags for issue 252 -->
<!-- Full PHP tag: enabled -->
<?php
echo __FILE__.__LINE__;
?>
<!-- Short echo tag: enabled -->
<?= 'echo' ?>
<!-- Short tag: disabled -->
<?
echo 'short'
?>
<!-- ASP language selection: disabled -->
<%@language=JScript%>
<!-- ASP tag: disabled -->
<%
Response.Write('short')
%>

View File

@ -0,0 +1,23 @@
0 400 0 <!-- Check PHP start tags for issue 252 -->
1 400 0
0 400 0 <!-- Full PHP tag: enabled -->
2 400 0 + <?php
0 401 0 | echo __FILE__.__LINE__;
0 401 0 | ?>
1 400 0
0 400 0 <!-- Short echo tag: enabled -->
0 400 0 <?= 'echo' ?>
1 400 0
0 400 0 <!-- Short tag: disabled -->
0 400 0 <?
0 400 0 echo 'short'
2 400 0 + ?>
1 401 0 |
0 401 0 | <!-- ASP language selection: disabled -->
2 401 0 + <%@language=JScript%>
1 402 0 |
0 402 0 | <!-- ASP tag: disabled -->
0 402 0 | <%
0 402 0 | Response.Write('short')
2 402 0 + %>
0 403 0 |

View File

@ -0,0 +1,22 @@
{9}<!-- Check PHP start tags for issue 252 -->{0}
{9}<!-- Full PHP tag: enabled -->{0}
{18}<?php{118}
{121}echo{118} {121}__FILE__{127}.{121}__LINE__{127};{118}
{18}?>{0}
{9}<!-- Short echo tag: enabled -->{0}
{18}<?{127}={118} {120}'echo'{118} {18}?>{0}
{9}<!-- Short tag: disabled -->{0}
{2}<?
echo 'short'
?>{0}
{9}<!-- ASP language selection: disabled -->{0}
{2}<%@language=JScript%>{0}
{9}<!-- ASP tag: disabled -->{0}
{2}<%
Response.Write('short')
%>{0}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Check that HTML elements and attributes and VB keywords are matched case-insensitively -->
<%@language=vbscript%>
<%
sub x 'comment
peek 1024
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<UNKNOWN>SinkWorld - Portability</unknown>
<img src="SciTEIco.png" height=64 WIDTH=64 />
<LINK rel="stylesheet" TYPE="text/css" from="SW.css">
<DESTINATION href="SW.css" height=64 width=64></destination>
</head>
</html>

View File

@ -0,0 +1,16 @@
0 400 0 <?xml version="1.0" encoding="UTF-8"?>
0 400 0 <!-- Check that HTML elements and attributes and VB keywords are matched case-insensitively -->
0 400 0 <%@language=vbscript%>
2 400 0 + <%
0 401 0 | sub x 'comment
0 401 0 | peek 1024
0 401 0 | %>
2 400 0 + <html xmlns="http://www.w3.org/1999/xhtml">
2 401 0 + <head>
0 402 0 | <UNKNOWN>SinkWorld - Portability</unknown>
0 402 0 | <img src="SciTEIco.png" height=64 WIDTH=64 />
0 402 0 | <LINK rel="stylesheet" TYPE="text/css" from="SW.css">
0 402 0 | <DESTINATION href="SW.css" height=64 width=64></destination>
0 402 0 | </head>
0 401 0 | </html>
0 400 0

View File

@ -0,0 +1,15 @@
{12}<?{1}xml{8} {3}version{8}={6}"1.0"{8} {3}encoding{8}={6}"UTF-8"{13}?>{0}
{9}<!-- Check that HTML elements and attributes and VB keywords are matched case-insensitively -->{0}
{15}<%@{16}language=vbscript{15}%>{0}
{15}<%{81}
{84}sub{81} {86}x{81} {82}'comment {81}
{196}peek{81} {83}1024{81}
{15}%>{0}
{1}<html{8} {3}xmlns{8}={6}"http://www.w3.org/1999/xhtml"{1}>{0}
{1}<head>{0}
{2}<UNKNOWN>{0}SinkWorld - Portability{2}</unknown>{0}
{1}<img{8} {3}src{8}={6}"SciTEIco.png"{8} {193}height{8}={5}64{8} {193}WIDTH{8}={5}64{8} {11}/>{0}
{1}<LINK{8} {3}rel{8}={6}"stylesheet"{8} {3}TYPE{8}={6}"text/css"{8} {193}from{8}={6}"SW.css"{1}>{0}
{192}<DESTINATION{8} {3}href{8}={6}"SW.css"{8} {4}height{8}={5}64{8} {4}width{8}={5}64{1}>{192}</destination>{0}
{1}</head>{0}
{1}</html>{0}

View File

@ -0,0 +1,7 @@
<script src="">
// comment
</script>
<script>
{
};
</script>

View File

@ -0,0 +1,8 @@
2 400 0 + <script src="">
0 401 0 | // comment
0 401 0 | </script>
2 400 0 + <script>
2 401 0 + {
0 402 0 | };
0 401 0 | </script>
0 400 0

View File

@ -0,0 +1,7 @@
{1}<script{8} {3}src{8}={6}""{1}>{40}
{43}// comment{41}
{1}</script>{0}
{1}<script>{40}
{50}{{41}
{50}};{41}
{1}</script>{0}

View File

@ -0,0 +1,5 @@
<script>
{
/\d{1}\}/.test('{0}')
}
</script>

View File

@ -0,0 +1,6 @@
2 400 0 + <script>
2 401 0 + {
0 402 0 | /\d{1}\}/.test('{0}')
0 402 0 | }
0 401 0 | </script>
0 400 0

View File

@ -0,0 +1,5 @@
{1}<script>{40}
{50}{{41}
{52}/\d{1}\}/{50}.{46}test{50}({49}'{0}'{50}){41}
{50}}{41}
{1}</script>{0}

View File

@ -0,0 +1,48 @@
lexer.*=hypertext
# Tags and attributes
keywords.*=b br body content div encoding head href html IMG language li link meta \
name p rel runat script Src strong title type ul version xml xmlns
# JavaScript
keywords2.*=function var
# Basic
keywords3.*=dim sub
# Python
keywords4.*=import pass
# PHP
keywords5.*=echo __file__ __line__
# SGML
keywords6.*=ELEMENT
# Tag
substyles.hypertext.1=1
substylewords.1.1.*=Destination
# Attribute
substyles.hypertext.3=1
substylewords.3.1.*=from img.height img.Width
# JavaScript
substyles.hypertext.46=1
substylewords.46.1.*=let
# Server JavaScript
substyles.hypertext.61=1
substylewords.61.1.*=serve
# Basic
substyles.hypertext.74=1
substylewords.74.1.*=PEEK
# Python
substyles.hypertext.96=1
substylewords.96.1.*=parse
# PHP
substyles.hypertext.121=1
substylewords.121.1.*=decrypt
fold=1
fold.html=1
fold.html.preprocessor=1
fold.hypertext.comment=1
match mako.html
lexer.html.mako=1
match Issue252Tag.php
lexer.html.allow.php=1
lexer.html.allow.asp=0

View File

@ -0,0 +1,24 @@
<%@ register tagprefix="uc1"
tagname="CalendarUserControl"
src="~/CalendarUserControl.ascx" %>
<!DOCTYPE html>
<html>
<%@language=VBScript%>
<%-- comment --%>
<script type="text/vbscript">
'1%>2
'1?>2
'%>
'?>
</script>
<script type="text/vbscript">
dim e="%>"
dim f="?>"
</script>
Start
<%response.write("1")%>
<% 'comment%>
<%dim x="2"'comment%>
<%response.write(x)%>
End
</html>

View File

@ -0,0 +1,25 @@
2 400 0 + <%@ register tagprefix="uc1"
0 401 0 | tagname="CalendarUserControl"
0 401 0 | src="~/CalendarUserControl.ascx" %>
0 400 0 <!DOCTYPE html>
2 400 0 + <html>
0 401 0 | <%@language=VBScript%>
0 401 0 | <%-- comment --%>
2 401 0 + <script type="text/vbscript">
0 402 0 | '1%>2
0 402 0 | '1?>2
0 402 0 | '%>
0 402 0 | '?>
0 402 0 | </script>
2 401 0 + <script type="text/vbscript">
0 402 0 | dim e="%>"
0 402 0 | dim f="?>"
0 402 0 | </script>
0 401 0 | Start
0 401 0 | <%response.write("1")%>
0 401 0 | <% 'comment%>
0 401 0 | <%dim x="2"'comment%>
0 401 0 | <%response.write(x)%>
0 401 0 | End
0 401 0 | </html>
0 400 0

View File

@ -0,0 +1,24 @@
{15}<%@{16} register tagprefix="uc1"
tagname="CalendarUserControl"
src="~/CalendarUserControl.ascx" {15}%>{0}
{21}<!{26}DOCTYPE html{21}>{0}
{1}<html>{0}
{15}<%@{16}language=VBScript{15}%>{0}
{15}<%--{20} comment --{15}%>{0}
{1}<script{8} {3}type{8}={6}"text/vbscript"{1}>{70}
{72}'1%>2{71}
{72}'1?>2{71}
{72}'%>{71}
{72}'?>{71}
{1}</script>{0}
{1}<script{8} {3}type{8}={6}"text/vbscript"{1}>{70}
{74}dim{71} {76}e{71}={75}"%>"{71}
{74}dim{71} {76}f{71}={75}"?>"{71}
{1}</script>{0}
Start
{15}<%{86}response.write{81}({85}"1"{81}){15}%>{0}
{15}<%{81} {82}'comment{15}%>{0}
{15}<%{84}dim{81} {86}x{81}={85}"2"{82}'comment{15}%>{0}
{15}<%{86}response.write{81}({86}x{81}){15}%>{0}
End
{1}</html>{0}

View File

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<%@language=JScript%>
<%-- comment --%>
<script type="text/javascript">
//%>
//?>
</script>
<script type="text/javascript">
e="%>";
f="?>";
</script>
Start
<%Response.Write("1")%>
<%var x=3;//comment%>
<%x=3;//comment ?> %>
<%Response.Write(x)%>
End
</html>

View File

@ -0,0 +1,20 @@
0 400 0 <!DOCTYPE html>
2 400 0 + <html>
0 401 0 | <%@language=JScript%>
0 401 0 | <%-- comment --%>
2 401 0 + <script type="text/javascript">
0 402 0 | //%>
0 402 0 | //?>
0 402 0 | </script>
2 401 0 + <script type="text/javascript">
0 402 0 | e="%>";
0 402 0 | f="?>";
0 402 0 | </script>
0 401 0 | Start
0 401 0 | <%Response.Write("1")%>
0 401 0 | <%var x=3;//comment%>
0 401 0 | <%x=3;//comment ?> %>
0 401 0 | <%Response.Write(x)%>
0 401 0 | End
0 401 0 | </html>
0 400 0

View File

@ -0,0 +1,19 @@
{21}<!{26}DOCTYPE html{21}>{0}
{1}<html>{0}
{15}<%@{16}language=JScript{15}%>{0}
{15}<%--{20} comment --{15}%>{0}
{1}<script{8} {3}type{8}={6}"text/javascript"{1}>{40}
{43}//%>{41}
{43}//?>{41}
{1}</script>{0}
{1}<script{8} {3}type{8}={6}"text/javascript"{1}>{40}
{46}e{50}={48}"%>"{50};{41}
{46}f{50}={48}"?>"{50};{41}
{1}</script>{0}
Start
{15}<%{61}Response.Write{65}({63}"1"{65}){15}%>{0}
{15}<%{62}var{56} {61}x{65}={60}3{65};{58}//comment{15}%>{0}
{15}<%{61}x{65}={60}3{65};{58}//comment ?> {15}%>{0}
{15}<%{61}Response.Write{65}({61}x{65}){15}%>{0}
End
{1}</html>{0}

View File

@ -0,0 +1,11 @@
<?php
# Test that currently fails as comment style not started in a number.
# line-comment
// line-comment
/* comment */
$foo = 0#comment
$foo = 0//comment
$foo = 0/*'*/;
?>
<br />

View File

@ -0,0 +1,12 @@
2 400 0 + <?php
0 401 0 | # Test that currently fails as comment style not started in a number.
0 401 0 | # line-comment
0 401 0 | // line-comment
0 401 0 | /* comment */
0 401 0 | $foo = 0#comment
0 401 0 | $foo = 0//comment
0 401 0 | $foo = 0/*'*/;
0 401 0 | ?>
1 400 0
0 400 0 <br />
0 400 0

View File

@ -0,0 +1,11 @@
{18}<?php{118}
{125}# Test that currently fails as comment style not started in a number.{118}
{125}# line-comment{118}
{125}// line-comment{118}
{124}/* comment */{118}
{123}$foo{118} {127}={118} {122}0{125}#comment{118}
{123}$foo{118} {127}={118} {122}0{125}//comment{118}
{123}$foo{118} {127}={118} {122}0{124}/*'*/{127};{118}
{18}?>{0}
{1}<br{8} {11}/>{0}

View File

@ -0,0 +1,8 @@
<!----><p>1 normal comment</p>
<!-- > and <!--><p>2 valid comment</p>
<!--><p>3 abrupt-closing-of-empty-comment</p>
<!---><p>4 abrupt-closing-of-empty-comment</p>
<!----!><p>5 incorrectly-closed-comment</p>
<!--!> <h1 value="--!><p>6 incorrectly-closed-comment</p>
<!--<!---><p>7 nested-comment</p>
<!--<!---!><p>8 nested-comment</p>

View File

@ -0,0 +1,9 @@
0 400 0 <!----><p>1 normal comment</p>
0 400 0 <!-- > and <!--><p>2 valid comment</p>
0 400 0 <!--><p>3 abrupt-closing-of-empty-comment</p>
0 400 0 <!---><p>4 abrupt-closing-of-empty-comment</p>
0 400 0 <!----!><p>5 incorrectly-closed-comment</p>
0 400 0 <!--!> <h1 value="--!><p>6 incorrectly-closed-comment</p>
0 400 0 <!--<!---><p>7 nested-comment</p>
0 400 0 <!--<!---!><p>8 nested-comment</p>
0 400 0

View File

@ -0,0 +1,8 @@
{9}<!---->{1}<p>{0}1 normal comment{1}</p>{0}
{9}<!-- > and <!-->{1}<p>{0}2 valid comment{1}</p>{0}
{9}<!-->{1}<p>{0}3 abrupt-closing-of-empty-comment{1}</p>{0}
{9}<!--->{1}<p>{0}4 abrupt-closing-of-empty-comment{1}</p>{0}
{9}<!----!>{1}<p>{0}5 incorrectly-closed-comment{1}</p>{0}
{9}<!--!> <h1 value="--!>{1}<p>{0}6 incorrectly-closed-comment{1}</p>{0}
{9}<!--<!--->{1}<p>{0}7 nested-comment{1}</p>{0}
{9}<!--<!---!>{1}<p>{0}8 nested-comment{1}</p>{0}

View File

@ -0,0 +1,76 @@
Mako examples extracted from https://docs.makotemplates.org/en/latest/syntax.html
Expression
${x}
${}
${pow(x,2) + pow(y,2)}
Expression Escaping
${"this is some text" | u}
Control Structures
% if x==5:
this is some output
% endif
% for a in ['one', 'two', 'three', 'four', 'five']:
% if a[0] == 't':
its two or three
% elif a[0] == 'f':
four/five
% else:
one
% endif
% endfor
The % sign can also be <20>escaped<65>, if you actually want to emit a percent sign as the first non whitespace character on a line, by escaping it as in %%:
%% some text
%% some more text
The Loop Context
The loop context provides additional information about a loop while inside of a % for structure:
<ul>
% for a in ("one", "two", "three"):
<li>Item ${loop.index}: ${a}</li>
% endfor
</ul>
A multiline version exists using <%doc> ...text... </%doc>:
<%doc>
these are comments
more comments
</%doc>
Python Blocks
Any arbitrary block of python can be dropped in using the <% %> tags:
this is a template
<%
x = db.get_resource('foo')
y = [z.element for z in x if x.frobnizzle==5]
%>
% for elem in y:
element: ${elem}
% endfor
Within <% %>, you<6F>re writing a regular block of Python code. While the code can appear with an arbitrary level of preceding whitespace, it has to be consistently formatted with itself. Mako<6B>s compiler will adjust the block of Python to be consistent with the surrounding generated Python code.
Module-level Blocks
A variant on <% %> is the module-level code block, denoted by <%! %>. Code within these tags is executed at the module level of the template, and not within the rendering function of the template. Therefore, this code does not have access to the template<74>s context and is only executed when the template is loaded into memory (which can be only once per application, or more, depending on the runtime environment). Use the <%! %> tags to declare your template<74>s imports, as well as any pure-Python functions you might want to declare:
<%!
import mylib
import re
def filter(text):
return re.sub(r'^@', '', text)
%>
Tags
The rest of what Mako offers takes place in the form of tags. All tags use the same syntax, which is similar to an XML tag except that the first character of the tag name is a % character. The tag is closed either by a contained slash character, or an explicit closing tag:
<%include file="foo.txt"/>
<%def name="foo" buffered="True">
this is a def
</%def>

View File

@ -0,0 +1,77 @@
0 400 0 Mako examples extracted from https://docs.makotemplates.org/en/latest/syntax.html
1 400 0
0 400 0 Expression
0 400 0 ${x}
0 400 0 ${}
0 400 0 ${pow(x,2) + pow(y,2)}
1 400 0
0 400 0 Expression Escaping
0 400 0 ${"this is some text" | u}
1 400 0
0 400 0 Control Structures
0 400 0 % if x==5:
0 400 0 this is some output
0 400 0 % endif
1 400 0
0 400 0 % for a in ['one', 'two', 'three', 'four', 'five']:
0 400 0 % if a[0] == 't':
0 400 0 its two or three
0 400 0 % elif a[0] == 'f':
0 400 0 four/five
0 400 0 % else:
0 400 0 one
0 400 0 % endif
0 400 0 % endfor
1 400 0
0 400 0 The % sign can also be <20>escaped<65>, if you actually want to emit a percent sign as the first non whitespace character on a line, by escaping it as in %%:
0 400 0 %% some text
0 400 0 %% some more text
1 400 0
0 400 0 The Loop Context
0 400 0 The loop context provides additional information about a loop while inside of a % for structure:
1 400 0
2 400 0 + <ul>
0 401 0 | % for a in ("one", "two", "three"):
0 401 0 | <li>Item ${loop.index}: ${a}</li>
0 401 0 | % endfor
0 401 0 | </ul>
1 400 0
0 400 0 A multiline version exists using <%doc> ...text... </%doc>:
0 400 0 <%doc>
0 400 0 these are comments
0 400 0 more comments
0 400 0 </%doc>
1 400 0
0 400 0 Python Blocks
0 400 0 Any arbitrary block of python can be dropped in using the <% %> tags:
0 400 0 this is a template
1 400 0
0 400 0 <%
0 400 0 x = db.get_resource('foo')
0 400 0 y = [z.element for z in x if x.frobnizzle==5]
0 400 0 %>
0 400 0 % for elem in y:
0 400 0 element: ${elem}
0 400 0 % endfor
0 400 0 Within <% %>, you<6F>re writing a regular block of Python code. While the code can appear with an arbitrary level of preceding whitespace, it has to be consistently formatted with itself. Mako<6B>s compiler will adjust the block of Python to be consistent with the surrounding generated Python code.
1 400 0
0 400 0 Module-level Blocks
0 400 0 A variant on <% %> is the module-level code block, denoted by <%! %>. Code within these tags is executed at the module level of the template, and not within the rendering function of the template. Therefore, this code does not have access to the template<74>s context and is only executed when the template is loaded into memory (which can be only once per application, or more, depending on the runtime environment). Use the <%! %> tags to declare your template<74>s imports, as well as any pure-Python functions you might want to declare:
1 400 0
0 400 0 <%!
0 400 0 import mylib
0 400 0 import re
1 400 0
0 400 0 def filter(text):
0 400 0 return re.sub(r'^@', '', text)
0 400 0 %>
1 400 0
0 400 0 Tags
0 400 0 The rest of what Mako offers takes place in the form of tags. All tags use the same syntax, which is similar to an XML tag except that the first character of the tag name is a % character. The tag is closed either by a contained slash character, or an explicit closing tag:
1 400 0
0 400 0 <%include file="foo.txt"/>
1 400 0
0 400 0 <%def name="foo" buffered="True">
0 400 0 this is a def
0 400 0 </%def>
0 400 0

View File

@ -0,0 +1,76 @@
{0}Mako examples extracted from https://docs.makotemplates.org/en/latest/syntax.html
Expression
{15}${{117}x{15}}{0}
{15}${}{0}
{15}${{117}pow{116}({117}x{116},{108}2{116}){106} {116}+{106} {117}pow{116}({117}y{116},{108}2{116}){15}}{0}
Expression Escaping
{15}${{109}"this is some text"{106} {116}|{106} {117}u{15}}{0}
Control Structures
{15}%{106} {117}if{106} {117}x{116}=={108}5{116}:{0}
this is some output
{15}%{106} {117}endif{0}
{15}%{106} {117}for{106} {117}a{106} {117}in{106} {116}[{110}'one'{116},{106} {110}'two'{116},{106} {110}'three'{116},{106} {110}'four'{116},{106} {110}'five'{116}]:{0}
{15}%{106} {117}if{106} {117}a{116}[{108}0{116}]{106} {116}=={106} {110}'t'{116}:{0}
its two or three
{15}%{106} {117}elif{106} {117}a{116}[{108}0{116}]{106} {116}=={106} {110}'f'{116}:{0}
four/five
{15}%{106} {117}else{116}:{0}
one
{15}%{106} {117}endif{0}
{15}%{106} {117}endfor{0}
The % sign can also be <20>escaped<65>, if you actually want to emit a percent sign as the first non whitespace character on a line, by escaping it as in %%:
{15}%{116}%{106} {117}some{106} {117}text{0}
{15}%{116}%{106} {117}some{106} {117}more{106} {117}text{0}
The Loop Context
The loop context provides additional information about a loop while inside of a % for structure:
{1}<ul>{0}
{15}%{106} {117}for{106} {117}a{106} {117}in{106} {116}({109}"one"{116},{106} {109}"two"{116},{106} {109}"three"{116}):{0}
{1}<li>{0}Item {15}${{117}loop.index{15}}{0}: {15}${{117}a{15}}{1}</li>{0}
{15}%{106} {117}endfor{0}
{1}</ul>{0}
A multiline version exists using {15}<%{2}doc{15}>{0} ...text... {15}</%{2}doc{15}>{0}:
{15}<%{2}doc{15}>{0}
these are comments
more comments
{15}</%{2}doc{15}>{0}
Python Blocks
Any arbitrary block of python can be dropped in using the {15}<%{106} {15}%>{0} tags:
this is a template
{15}<%{105}
{106} {117}x{106} {116}={106} {117}db.get_resource{116}({110}'foo'{116}){106}
{117}y{106} {116}={106} {116}[{117}z.element{106} {117}for{106} {117}z{106} {117}in{106} {117}x{106} {117}if{106} {117}x.frobnizzle{116}=={108}5{116}]{106}
{15}%>{0}
{15}%{106} {117}for{106} {117}elem{106} {117}in{106} {117}y{116}:{0}
element: {15}${{117}elem{15}}{0}
{15}%{106} {117}endfor{0}
Within {15}<%{106} {15}%>{0}, you<6F>re writing a regular block of Python code. While the code can appear with an arbitrary level of preceding whitespace, it has to be consistently formatted with itself. Mako<6B>s compiler will adjust the block of Python to be consistent with the surrounding generated Python code.
Module-level Blocks
A variant on {15}<%{106} {15}%>{0} is the module-level code block, denoted by {15}<%{116}!{106} {15}%>{0}. Code within these tags is executed at the module level of the template, and not within the rendering function of the template. Therefore, this code does not have access to the template<74>s context and is only executed when the template is loaded into memory (which can be only once per application, or more, depending on the runtime environment). Use the {15}<%{116}!{106} {15}%>{0} tags to declare your template<74>s imports, as well as any pure-Python functions you might want to declare:
{15}<%{116}!{105}
{106} {111}import{106} {117}mylib{106}
{111}import{106} {117}re{106}
{117}def{106} {115}filter{116}({117}text{116}):{106}
{117}return{106} {117}re.sub{116}({117}r{110}'^@'{116},{106} {110}''{116},{106} {117}text{116}){106}
{15}%>{0}
Tags
The rest of what Mako offers takes place in the form of tags. All tags use the same syntax, which is similar to an XML tag except that the first character of the tag name is a % character. The tag is closed either by a contained slash character, or an explicit closing tag:
{15}<%{2}include{106} {117}file{116}={109}"foo.txt"{15}/>{0}
{15}<%{2}def{106} {117}name{116}={109}"foo"{106} {117}buffered{116}={109}"True"{15}>{0}
this is a def
{15}</%{2}def{15}>{0}

View File

@ -0,0 +1,21 @@
<%@language=javas%>
<%
#include
serve x;
function x() {
}
%>
<%@language=vbscript%>
<%
sub x 'comment
peek 1024
%>
<!-- Folding for Python is incorrect. See #235. -->
<%@language=python%>
<%
import random
x = 'comment'
parse "x=8"
%>
<head>
<body></body>

View File

@ -0,0 +1,22 @@
0 400 0 <%@language=javas%>
2 400 0 + <%
0 401 0 | #include
0 401 0 | serve x;
2 401 0 + function x() {
0 402 0 | }
0 401 0 | %>
0 400 0 <%@language=vbscript%>
2 400 0 + <%
0 401 0 | sub x 'comment
0 401 0 | peek 1024
0 401 0 | %>
0 400 0 <!-- Folding for Python is incorrect. See #235. -->
0 400 0 <%@language=python%>
0 400 0 <%
0 400 0 import random
0 400 0 x = 'comment'
0 400 0 parse "x=8"
0 400 0 %>
2 3ff 0 + <head>
0 400 0 <body></body>
0 400 0

View File

@ -0,0 +1,21 @@
{15}<%@{16}language=javas{15}%>{0}
{15}<%{56}
#{61}include{56}
{195}serve{56} {61}x{65};{56}
{62}function{56} {61}x{65}(){56} {65}{{56}
{65}}{56}
{15}%>{0}
{15}<%@{16}language=vbscript{15}%>{0}
{15}<%{81}
{84}sub{81} {86}x{81} {82}'comment {81}
{196}peek{81} {83}1024{81}
{15}%>{0}
{9}<!-- Folding for Python is incorrect. See #235. -->{0}
{15}<%@{16}language=python{15}%>{0}
{15}<%{106}
{111}import{106} {117}random{106}
{117}x{106} {116}={106} {110}'comment'{106}
{197}parse{106} {109}"x=8"{106}
{15}%>{0}
{1}<head>{0}
{1}<body></body>{0}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">
var b = /abc/i.test('abc');
let b = 1;
'x\
</t>'
// issue 214 fix to behave same as single quote escaped eol
"x\
</t>"
</script>
<head>
<meta name="Date.Modified" content="20010515" />
<title>SinkWorld - Portability</title>
§
<unknown>SinkWorld - Portability</unknown>
<img src="SciTEIco.png" height=64 width=64 />
<link rel="stylesheet" type="text/css" from="SW.css">
<destination href="SW.css" height=64 width=64></destination>
</head>
</html>

View File

@ -0,0 +1,22 @@
0 400 0 <?xml version="1.0" encoding="UTF-8"?>
2 400 0 + <html xmlns="http://www.w3.org/1999/xhtml">
2 401 0 + <script type="text/javascript">
0 402 0 | var b = /abc/i.test('abc');
0 402 0 | let b = 1;
0 402 0 | 'x\
0 402 0 | </t>'
0 402 0 | // issue 214 fix to behave same as single quote escaped eol
0 402 0 | "x\
0 402 0 | </t>"
0 402 0 | </script>
2 401 0 + <head>
0 402 0 | <meta name="Date.Modified" content="20010515" />
0 402 0 | <title>SinkWorld - Portability</title>
0 402 0 | §
0 402 0 | <unknown>SinkWorld - Portability</unknown>
0 402 0 | <img src="SciTEIco.png" height=64 width=64 />
0 402 0 | <link rel="stylesheet" type="text/css" from="SW.css">
0 402 0 | <destination href="SW.css" height=64 width=64></destination>
0 402 0 | </head>
0 401 0 | </html>
0 400 0

View File

@ -0,0 +1,21 @@
{12}<?{1}xml{8} {3}version{8}={6}"1.0"{8} {3}encoding{8}={6}"UTF-8"{13}?>{0}
{1}<html{8} {3}xmlns{8}={6}"http://www.w3.org/1999/xhtml"{1}>{0}
{1}<script{8} {3}type{8}={6}"text/javascript"{1}>{40}
{47}var{41} {46}b{41} {50}={41} {52}/abc/i{46}.test{50}({49}'abc'{50});{41}
{194}let{41} {46}b{41} {50}={41} {45}1{50};{41}
{49}'x\
</t>'{41}
{43}// issue 214 fix to behave same as single quote escaped eol{41}
{48}"x\
</t>"{41}
{1}</script>{0}
{1}<head>{0}
{1}<meta{8} {3}name{8}={6}"Date.Modified"{8} {3}content{8}={6}"20010515"{8} {11}/>{0}
{1}<title>{0}SinkWorld - Portability{1}</title>{0}
§
{2}<unknown>{0}SinkWorld - Portability{2}</unknown>{0}
{1}<img{8} {3}src{8}={6}"SciTEIco.png"{8} {193}height{8}={5}64{8} {193}width{8}={5}64{8} {11}/>{0}
{1}<link{8} {3}rel{8}={6}"stylesheet"{8} {3}type{8}={6}"text/css"{8} {193}from{8}={6}"SW.css"{1}>{0}
{192}<destination{8} {3}href{8}={6}"SW.css"{8} {4}height{8}={5}64{8} {4}width{8}={5}64{1}>{192}</destination>{0}
{1}</head>{0}
{1}</html>{0}

View File

@ -0,0 +1,20 @@
<head> <!-- About to script -->
<?php
decrypt "xyzzy";
echo __FILE__.__LINE__;
echo "<!-- -->\n";
/* ?> */
?>
<strong>for</strong><b>if</b>
<?= 'short echo tag' ?>
<? echo 'short tag' ?>
<script>
alert("<?php echo "PHP" . ' Code'; ?>");
alert('<?= 'PHP' . "Code"; ?>');
var xml =
'<?xml version="1.0" encoding="iso-8859-1"?><SO_GL>' +
'<GLOBAL_LIST mode="complete"><NAME>SO_SINGLE_MULTIPLE_COMMAND_BUILDER</NAME>' +
'<LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[RM QI WEB BOOKING]]></LIST_VALUE></LIST_ELEMENT>' +
'<LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[RM *PCC]]></LIST_VALUE></LIST_ELEMENT>' +
'</GLOBAL_LIST></SO_GL>';
</script>

View File

@ -0,0 +1,21 @@
2 400 0 + <head> <!-- About to script -->
2 401 0 + <?php
0 402 0 | decrypt "xyzzy";
0 402 0 | echo __FILE__.__LINE__;
0 402 0 | echo "<!-- -->\n";
0 402 0 | /* ?> */
0 402 0 | ?>
0 401 0 | <strong>for</strong><b>if</b>
0 401 0 | <?= 'short echo tag' ?>
0 401 0 | <? echo 'short tag' ?>
2 401 0 + <script>
0 402 0 | alert("<?php echo "PHP" . ' Code'; ?>");
0 402 0 | alert('<?= 'PHP' . "Code"; ?>');
0 402 0 | var xml =
0 402 0 | '<?xml version="1.0" encoding="iso-8859-1"?><SO_GL>' +
0 402 0 | '<GLOBAL_LIST mode="complete"><NAME>SO_SINGLE_MULTIPLE_COMMAND_BUILDER</NAME>' +
0 402 0 | '<LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[RM QI WEB BOOKING]]></LIST_VALUE></LIST_ELEMENT>' +
0 402 0 | '<LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[RM *PCC]]></LIST_VALUE></LIST_ELEMENT>' +
0 402 0 | '</GLOBAL_LIST></SO_GL>';
0 402 0 | </script>
0 401 0 |

View File

@ -0,0 +1,20 @@
{1}<head>{0} {9}<!-- About to script -->{0}
{18}<?php{118}
{198}decrypt{118} {119}"xyzzy"{127};{118}
{121}echo{118} {121}__FILE__{127}.{121}__LINE__{127};{118}
{121}echo{118} {119}"<!-- -->\n"{127};{118}
{124}/* ?> */{118}
{18}?>{0}
{1}<strong>{0}for{1}</strong><b>{0}if{1}</b>{0}
{18}<?{127}={118} {120}'short echo tag'{118} {18}?>{0}
{18}<?{118} {121}echo{118} {120}'short tag'{118} {18}?>{0}
{1}<script>{40}
{41} {46}alert{50}({48}"{18}<?php{118} {121}echo{118} {119}"PHP"{118} {127}.{118} {120}' Code'{127};{118} {18}?>{48}"{50});{41}
{46}alert{50}({49}'{18}<?{127}={118} {120}'PHP'{118} {127}.{118} {119}"Code"{127};{118} {18}?>{49}'{50});{41}
{47}var{41} {46}xml{41} {50}={41}
{49}'<?xml version="1.0" encoding="iso-8859-1"?><SO_GL>'{41} {50}+{41}
{49}'<GLOBAL_LIST mode="complete"><NAME>SO_SINGLE_MULTIPLE_COMMAND_BUILDER</NAME>'{41} {50}+{41}
{49}'<LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[RM QI WEB BOOKING]]></LIST_VALUE></LIST_ELEMENT>'{41} {50}+{41}
{49}'<LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[RM *PCC]]></LIST_VALUE></LIST_ELEMENT>'{41} {50}+{41}
{49}'</GLOBAL_LIST></SO_GL>'{50};{41}
{1}</script>{0}