Browse Source

Test if unicode characters can be used as method / variable name

pull/44/head
Rafal Kupiec 3 years ago
parent
commit
dd239530d8
Signed by: belliash GPG Key ID: 4E829243E0CFE6B4
2 changed files with 47 additions and 0 deletions
  1. +43
    -0
      tests/utf8_variables.aer
  2. +4
    -0
      tests/utf8_variables.exp

+ 43
- 0
tests/utf8_variables.aer View File

@ -0,0 +1,43 @@
class Main {
private $概要 = "AerScript Interpreter";
public function __construct() {
$this->ダウンロード();
var_dump($this->概要);
var_dump($this->isUTF8('hello'));
var_dump($this->isUTF8("すが、基本的な使い方は単純です。かしながら使い方を身につけていきましょう"));
}
private function ダウンロード(){
echo $this->概要 . "\n";
}
private function isUTF8($str) {
$b = 0;
$c = 0;
$bits = 0;
$len = strlen($str);
for($i = 0; $i < $len; $i++) {
$c = ord($str[$i]);
if($c >= 128) {
if(($c >= 254)) return false;
elseif($c >= 252) $bits=6;
elseif($c >= 248) $bits=5;
elseif($c >= 240) $bits=4;
elseif($c >= 224) $bits=3;
elseif($c >= 192) $bits=2;
else return false;
if(($i+$bits) > $len) return false;
while($bits > 1) {
$i++;
$b=ord($str[$i]);
if($b < 128 || $b > 191) return false;
$bits--;
}
}
}
return true;
}
}
new Main();

+ 4
- 0
tests/utf8_variables.exp View File

@ -0,0 +1,4 @@
AerScript Interpreter
string(21 'AerScript Interpreter')
bool(TRUE)
bool(TRUE)

Loading…
Cancel
Save