X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite%2FJSONNospace.yp;fp=videosite%2FJSONNospace.yp;h=0000000000000000000000000000000000000000;hb=3bcd25114d4e3ba793e2183743d779deef246a75;hp=22de6a1bc55d5c526294183297d71c7ff984297c;hpb=1cfec45c0c1cac8fdebca4313c3bcfb3a9f1ab07;p=videosite.git diff --git a/videosite/JSONNospace.yp b/videosite/JSONNospace.yp deleted file mode 100644 index 22de6a1..0000000 --- a/videosite/JSONNospace.yp +++ /dev/null @@ -1,113 +0,0 @@ -/* - * This file contains a simple and quite possible wrong parser for - * JSON encoded structures. - * - * It does not support white space in quoted strings, those are silently - * dropped. - * - * It has primarily been written to parse video parameters from the - * DailyMotion site - * - * Token definitions: - * COLON => ':', - * QUOTE => '\"', - * SINGLEQUOTE => '\\\'', - * TRUE => 'true', - * FALSE => 'false', - * NULL => 'null', - * QUADHEX => 'u[0-9a-fA-F]{4}', - * INTEGER => '[0-9]+', - * QUOTEDNORMAL => '[nr]', - * SIMPLECHAR => '[-a-zA-Z\._\?\+=\&\!%<>]+', - * BACKSLASH => '\\\\', - * SLASH => '/', - * COMMA => ',', - * CURLYOPEN => '{', - * CURLYCLOSE => '}', - * SQUAREOPEN => '\[', - * SQUARECLOSE => '\]', - */ - -%{ -use Encode; -%} -%% - -basicstream: - basictype { return [ $_[1] ] } | - basicstream COMMA basictype { return [ @{$_[1]}, $_[3] ] }; - -basictype: - hash | - array | - quotestring | - boolean; - -boolean: - TRUE { return 1 } | - FALSE { return 0 }; - -array: - SQUAREOPEN SQUARECLOSE { return [] } | - SQUAREOPEN basicstream SQUARECLOSE { return [ @{$_[2]} ] }; - -hash: - CURLYOPEN CURLYCLOSE { return { } } | - CURLYOPEN kvstream CURLYCLOSE { return { @{$_[2]} } }; - -kvstream: - kvpair | - kvstream COMMA kvpair { return [ @{$_[1]}, @{$_[3]} ] }; - -kvpair: - quotestring COLON quotestring { return [ $_[1], $_[3] ] } | - quotestring COLON hash { return [ $_[1], $_[3] ] } | - quotestring COLON array { return [ $_[1], $_[3] ] } | - quotestring COLON boolean { return [ $_[1], $_[3] ] } | - quotestring COLON NULL { return [ $_[1], undef ] } | - quotestring COLON INTEGER { return [ $_[1], $_[3] ] }; - -quotestring: - QUOTE QUOTE { return "" } | - QUOTE charstream QUOTE { return $_[2] }; - -charstream: - char | - charstream char { return $_[1] . $_[2] }; - -escapedchar: - BACKSLASH CURLYOPEN { return $_[2] } | - BACKSLASH CURLYCLOSE { return $_[2] } | - BACKSLASH SQUAREOPEN { return $_[2] } | - BACKSLASH SQUARECLOSE { return $_[2] } | - BACKSLASH QUOTE { return $_[2] } | - BACKSLASH SINGLEQUOTE { return $_[2] } | - BACKSLASH SLASH { return $_[2] } | - BACKSLASH BACKSLASH { return $_[2] } | - BACKSLASH QUADHEX { return encode("utf8", pack("U", hex(substr($_[2],1)))) } | - BACKSLASH QUOTEDNORMAL { - if ($_[2] eq 'n') { - return "\n"; - } elsif ($_[2] eq 'r') { - return "\r"; - } else { - return $_[2]; - }}; - -char: - QUOTEDNORMAL | - U | - QUADHEX | - SIMPLECHAR | - INTEGER | - COLON | - COMMA | - SINGLEQUOTE | - TRUE | - FALSE | - NULL | - SQUAREOPEN | - SQUARECLOSE | - escapedchar; - -%%