Scanner: Generate error on inbalanced RLO/LRO/PDF override markers.

This commit is contained in:
Christian Parpart
2020-12-15 18:40:51 +01:00
committed by chriseth
parent 67b7267735
commit 381c63ec99
31 changed files with 333 additions and 7 deletions
@@ -0,0 +1,9 @@
contract C {
function f() public pure
{
// PDF
bytes memory s = unicode"underflow ";
}
}
// ----
// ParserError 8936: (88-106): Unicode direction override underflow in comment or string literal.
@@ -0,0 +1,9 @@
contract C {
function f() public pure
{
// PDF PDF
bytes memory m = unicode"underflow ";
}
}
// ----
// ParserError 8936: (92-110): Unicode direction override underflow in comment or string literal.
@@ -0,0 +1,9 @@
contract C {
function f() public pure
{
// RLO
bytes memory m = unicode"overflow ";
}
}
// ----
// ParserError 8936: (88-108): Mismatching directional override markers in comment or string literal.
@@ -0,0 +1,9 @@
contract C {
function f() public pure
{
// RLO RLO
bytes memory m = unicode"overflow ";
}
}
// ----
// ParserError 8936: (92-115): Mismatching directional override markers in comment or string literal.
@@ -0,0 +1,14 @@
contract C {
function f() public pure
{
// RLO PDF
bytes memory m = unicode" ok ";
// RLO RLO PDF PDF
m = unicode" ok ";
// RLO RLO RLO PDF PDF PDF
m = unicode" ok ";
}
}
// ----
@@ -0,0 +1,9 @@
contract C {
function f() public pure
{
// PDF RLO
bytes memory m = unicode" underflow ";
}
}
// ----
// ParserError 8936: (92-111): Unicode direction override underflow in comment or string literal.
@@ -0,0 +1,13 @@
contract C {
function f() public pure
{
// LRO PDF RLO PDF
bytes memory m = unicode" ok ";
// lre rle pdf pdf
m = unicode"lre rle pdf pdf";
// lre lro pdf pdf
m = unicode"lre lro pdf pdf";
}
}
// ----