Created
December 29, 2010 13:04
-
-
Save think49/758515 to your computer and use it in GitHub Desktop.
[Proxomitron] Array を実装するフィルタ prototype
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# NoAddURL | |
# | |
# ArrayCommand | |
# 変数の宣言 | |
# https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Variables | |
# http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.6 | |
# Array Statements | |
$TST(ArrayStatements=$SET(StatementFlag=true)$SET(ArrayEvaluationValue=)( | |
[%00\t ]+[\n\r;]$SET(StatementFlag=true) | | |
\s | | |
$TST(StatementFlag=true) | |
var ([$_a-z][$0-9_a-z]+)\9$SET(ArrayCSVLine=\9) = \[ | |
(\"$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\"$SET(ArrayCSVLine=$GET(ArrayCSVLine)"")|([^"])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\"| | |
\'$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\'$SET(ArrayCSVLine=$GET(ArrayCSVLine)')|([^'])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\') | |
( , (\"$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\"$SET(ArrayCSVLine=$GET(ArrayCSVLine)"")|([^"])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\"| | |
\'$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\'$SET(ArrayCSVLine=$GET(ArrayCSVLine)')|([^'])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\'))+ | |
] | |
$SET(ArrayCSV=$GET(ArrayCSV)$GET(ArrayCSVLine)\r\n)$SET(ArrayEvaluationValue=$GET(ArrayCSVLine))| | |
$TST(StatementFlag=true) | |
([$_a-z][$0-9_a-z]+)\9$SET(ArrayVariable=\9)\[([0-9]+{1,*})\9]$SET(ArrayIndex=\9) | |
($TST(ArrayCSV=((^$TST(ArrayVariable))[^,]+(,\"(\"+{2}|[^"])+\")+\r\n)++ | |
$TST(ArrayVariable)$SET(Num=0)((^$TST(Num=$TST(ArrayIndex))),\"(\"+{2}|[^"])+\"$LST(increment))+ | |
($TST(Num=$TST(ArrayIndex)) | |
,\"$SET(ArrayEvaluationValue=)(\"+{2}$SET(ArrayEvaluationValue=$GET(ArrayEvaluationValue)")|([^"])\9$SET(ArrayEvaluationValue=$GET(ArrayEvaluationValue)\9))+\"| | |
$SET(ArrayEvaluationValue=undefined)) | |
*)| | |
$SET(ArrayEvaluationValue=ReferenceError: $GET(ArrayVariable) is not defined))| | |
$TST(StatementFlag=true) | |
([$_a-z][$0-9_a-z]+)\9$SET(ArrayVariable=\9) | |
($TST(ArrayCSV=((^$TST(ArrayVariable))[^,]+(,\"(\"+{2}|[^"])+\")+\r\n)++($TST(ArrayVariable)(,\"(\"+{2}|[^"])+\")+)\9*) | |
$SET(ArrayEvaluationValue=\9)| | |
$SET(ArrayEvaluationValue=ReferenceError: $GET(ArrayVariable) is not defined)) | |
)+{1,*}) | |
$SET(ArrayStatements=)$SET(ArrayCSVLine=)$SET(StatementFlag=) | |
# $TST(ArrayVariable)((^$TST(ArrayIndex=$GET(Num))),\"(\"+{2}|[^"])+\"$LST(increment))+,\"$TST(ArrayIndex=$GET(Num))$SET(ArrayEvaluationValue=)(\"+{2}$SET(ArrayEvaluationValue=$GET(ArrayEvaluationValue)")|([^"])\9$SET(ArrayEvaluationValue=$GET(ArrayEvaluationValue)\9))+\" | |
# $TST(ArrayCommand=$SET(flag=true)( | |
# [%00\t ]+[\n\r;]$SET(flag=true) | | |
# $TST(flag=true) | |
# var ([$_a-z][$0-9_a-z]+)\9$SET(ArrayCSVLine=)$SET(ArrayCSVLine=\9) = \[ | |
# (\"$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\"$SET(ArrayCSVLine=$GET(ArrayCSVLine)"")|([^"])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\"| | |
# \'$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\'$SET(ArrayCSVLine=$GET(ArrayCSVLine)')|([^'])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\') | |
# ( , (\"$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\"$SET(ArrayCSVLine=$GET(ArrayCSVLine)"")|([^"])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\"| | |
# \'$SET(ArrayCSVLine=$GET(ArrayCSVLine),")(\\\'$SET(ArrayCSVLine=$GET(ArrayCSVLine)')|([^'])\9$SET(ArrayCSVLine=$GET(ArrayCSVLine)\9))+$SET(ArrayCSVLine=$GET(ArrayCSVLine)")\'))+ | |
# ] | |
# $SET(ArrayCSV=$GET(ArrayCSV)$GET(ArrayCSVLine)\r\n)$SET(ArrayCSVLine=) | |
# )+{1,*}) | |
# $SET(ArrayCommand=) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# NoAddURL | |
# | |
# increment | |
# 「0~8を1つ以上含む数値」をインクリメント (+1) | |
$TST(Num=\9(^(^[0-8]9+(^[0-9])))$SET(Ntmp=\9)($LST(Num-plus))+)$SET(Num=$GET(Ntmp))$SET(Ntmp=) | |
# 「9のみで構成される数値」をインクリメント (+1) | |
$TST(Num=(^(^9))$SET(Ntmp=1)((^(^9))$LST(Num-plus))+)$SET(Num=$GET(Ntmp))$SET(Ntmp=) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Patterns] | |
Name = "Array [2010/12/02] prototype v0.1.31" | |
Active = TRUE | |
Limit = 256 | |
Match = "array" | |
"$SET(ArrayStatements=var hoge = ["foo","\\"Hello, World!\\"",'test'];)" | |
"$LST(ArrayCommand)" | |
Replace = "ArrayCSVLine = $GET(ArrayCSVLine)\r\n" | |
"ArrayCSV = $GET(ArrayCSV)\r\n" | |
"\\9 = \9 " |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment