一个日牯子
Home
Tags
GitHub
Author
2018-05-09
SVG
HTML
PDF
C
o
n
t
e
n
t
s
1
使
用
A
n
t
l
r
解
析
配
置
文
件
小
实
现
闲
话
编
程
C
o
n
t
e
n
t
s
在
纠
结
了
一
阵
子
甚
至
等
等
配
置
文
件
的
格
式
后
,
还
是
决
定
使
用
实
现
了
一
种
我
自
定
义
的
格
式
的
解
析
。
这
个
格
式
是
这
个
样
子
的
/
/
H
e
r
e
i
s
s
o
m
e
c
o
m
m
e
n
t
s
h
a
r
e
d
{
s
t
r
i
n
g
_
b
a
s
e
U
r
l
=
"
h
t
t
p
:
/
/
l
o
c
a
l
h
o
s
t
:
8
0
8
0
"
;
s
t
r
i
n
g
d
o
m
a
i
n
=
"
r
i
g
u
z
.
c
o
m
"
;
b
o
o
l
s
s
l
=
f
a
l
s
e
;
i
n
t
v
e
r
s
i
o
n
=
1
9
;
i
n
t
s
u
b
V
e
r
s
i
o
n
=
2
5
;
f
l
o
a
t
n
u
m
b
e
r
=
1
9
.
2
5
;
s
t
r
i
n
g
u
r
l
s
=
[
"
h
t
t
p
:
/
/
l
o
c
a
l
h
o
s
t
:
8
0
8
0
"
,
"
h
t
t
p
:
/
/
r
i
g
u
z
.
c
o
m
:
8
0
8
0
"
]
;
s
t
r
i
n
g
d
o
m
a
i
n
s
=
[
"
r
i
g
u
z
.
c
o
m
"
,
"
d
r
.
r
i
g
u
z
.
c
o
m
"
]
;
b
o
o
l
s
s
l
A
r
r
a
y
=
[
t
r
u
e
,
f
a
l
s
e
]
;
i
n
t
v
e
r
s
i
o
n
A
r
r
a
y
=
[
1
9
,
2
5
]
;
f
l
o
a
t
n
u
m
b
e
r
A
r
r
a
y
=
[
1
8
.
0
1
,
1
9
.
2
5
,
2
0
.
2
3
]
;
}
;
s
c
o
p
e
d
e
v
_
d
b
{
s
t
r
i
n
g
u
r
l
=
$
{
d
o
m
a
i
n
}
.
.
"
:
3
3
0
6
/
m
y
s
q
l
"
;
s
t
r
i
n
g
u
s
e
r
=
"
l
i
h
a
i
f
e
n
g
"
;
i
n
t
c
o
n
n
e
c
t
i
o
n
s
=
1
0
;
s
t
r
i
n
g
p
a
s
s
w
o
r
d
=
"
i
i
k
j
o
u
i
o
q
u
e
y
j
k
a
j
k
q
q
=
=
"
;
s
t
r
i
n
g
d
o
m
a
i
n
s
=
$
{
d
o
m
a
i
n
s
}
;
}
;
其
实
是
一
个
形
式
的
文
本
文
件
,
支
持
的
基
本
类
型
有
:
字
符
串
、
布
尔
值
、
整
数
、
小
数
、
数
组
。
定
义
的
方
法
类
似
于
或
者
语
言
,
s
t
r
i
n
g
_
b
a
s
e
U
r
l
=
"
h
t
t
p
:
/
/
l
o
c
a
l
h
o
s
t
:
8
0
8
0
"
前
面
会
限
定
数
据
类
型
。
如
果
要
定
义
数
组
,
则
用
b
o
o
l
s
s
l
A
r
r
a
y
=
[
t
r
u
e
,
f
a
l
s
e
]
;
这
种
形
式
。
然
后
使
用
区
分
不
同
的
配
置
块
。
因
为
可
能
有
些
相
同
的
配
置
会
重
名
,
这
样
我
们
利
用
不
同
的
去
区
分
就
好
了
。
考
虑
到
有
些
配
置
中
需
要
共
同
的
变
量
的
使
用
,
所
以
定
义
了
一
个
的
,
这
个
是
写
死
的
,
其
他
中
只
能
引
用
中
的
变
量
。
字
符
串
连
接
使
用
.
.
操
作
符
。
这
样
可
以
组
装
字
符
串
。
详
细
的
实
现
可
以
在
的
子
项
目
中
找
到
。
C
o
n
t
e
n
t
s
2
另
外
还
实
现
了
一
个
类
似
的
路
由
定
义
文
件
的
解
析
,
长
这
个
样
子
的
c
o
n
t
r
o
l
l
e
r
s
a
d
m
i
n
{
p
a
c
k
a
g
e
c
o
m
.
r
i
g
u
z
.
f
o
r
k
s
.
d
e
m
o
.
c
o
n
t
r
o
l
l
e
r
U
s
e
r
C
o
n
t
r
o
l
l
e
r
F
i
l
e
C
o
n
t
r
o
l
l
e
r
}
c
o
n
t
r
o
l
l
e
r
s
{
p
a
c
k
a
g
e
c
o
m
.
r
i
g
u
z
.
f
o
r
k
s
.
d
e
m
o
.
a
d
m
i
n
U
s
e
r
C
o
n
t
r
o
l
l
e
r
-
>
A
d
m
i
n
U
s
e
r
C
o
n
t
r
o
l
l
e
r
P
o
s
t
C
o
n
t
r
o
l
l
e
r
}
f
i
l
t
e
r
s
{
p
a
c
k
a
g
e
c
o
m
.
r
i
g
u
z
.
f
o
r
k
s
.
d
e
m
o
.
f
i
l
t
e
r
s
A
u
t
h
o
r
i
z
a
t
i
o
n
F
i
l
t
e
r
N
o
c
s
r
f
F
i
l
t
e
r
}
r
o
u
t
e
s
a
d
m
i
n
{
+
A
u
t
h
o
r
i
z
a
t
i
o
n
F
i
l
t
e
r
g
e
t
/
u
s
e
r
s
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
U
s
e
r
s
(
)
g
e
t
/
u
s
e
r
s
/
:
i
d
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
U
s
e
r
(
i
d
:
L
o
n
g
)
p
o
s
t
/
u
s
e
r
s
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
c
r
e
a
t
e
U
s
e
r
(
)
g
e
t
/
u
s
e
r
s
/
:
i
d
/
f
i
l
e
s
/
*
n
a
m
e
F
i
l
e
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
F
i
l
e
(
i
d
:
L
o
n
g
,
n
a
m
e
:
S
t
r
i
n
g
)
}
r
o
u
t
e
s
g
u
e
s
t
{
+
N
o
c
s
r
f
F
i
l
t
e
r
g
e
t
/
p
o
s
t
s
P
o
s
t
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
P
o
s
t
s
(
)
g
e
t
/
p
o
s
t
s
/
:
i
d
P
o
s
t
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
P
o
s
t
(
i
d
:
S
t
r
i
n
g
)
}
r
o
u
t
e
s
g
u
e
s
t
{
+
N
o
c
s
r
f
F
i
l
t
e
r
g
e
t
/
p
o
s
t
s
P
o
s
t
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
P
o
s
t
s
(
)
g
e
t
/
p
o
s
t
s
/
:
i
d
P
o
s
t
U
s
e
r
C
o
n
t
r
o
l
l
e
r
.
g
e
t
P
o
s
t
(
i
d
:
S
t
r
i
n
g
)
}
这
个
文
件
的
解
析
也
在
上
面
的
中
可
以
找
到
实
现
。
通
过
可
以
很
方
便
的
把
类
似
这
样
的
文
件
解
析
出
来
,
你
甚
至
可
以
实
现
自
己
的
领
域
语
言
。
在
实
现
过
程
中
,
遇
到
过
一
些
问
题
,
来
说
下
问
题
吧
。
首
先
是
提
供
了
和
两
种
方
式
,
起
初
使
用
来
实
现
但
是
感
觉
比
较
麻
烦
,
而
使
用
则
可
以
直
接
通
过
返
回
值
来
取
得
解
析
结
果
。
我
们
解
析
一
个
文
件
的
时
候
,
是
自
顶
向
下
的
,
一
个
个
的
去
解
析
的
,
比
如
我
们
的
配
置
文
件
的
语
法
定
义
如
下
:
s
c
r
i
p
t
:
s
h
a
r
e
d
?
s
c
o
p
e
*
C
o
n
t
e
n
t
s
3
E
O
F
;
其
中
又
是
这
样
的
s
h
a
r
e
d
:
S
H
A
R
E
D
L
B
R
A
C
E
(
p
r
o
p
e
r
t
y
S
E
M
I
)
*
R
B
R
A
C
E
S
E
M
I
;
也
就
是
说
s
h
a
r
e
d
{
k
=
v
.
.
.
}
;
这
样
的
形
式
,
然
后
又
开
始
到
了
p
r
o
p
e
r
t
y
:
t
y
p
e
N
A
M
E
A
S
S
I
G
N
e
x
p
r
e
s
s
i
o
n
#
b
a
s
i
c
P
r
o
p
e
r
t
y
|
t
y
p
e
N
A
M
E
A
S
S
I
G
N
L
B
R
A
C
K
e
x
p
r
e
s
s
i
o
n
?
(
C
O
M
M
A
e
x
p
r
e
s
s
i
o
n
)
*
R
B
R
A
C
K
#
a
r
r
a
y
P
r
o
p
e
r
t
y
;
这
样
层
层
往
下
来
看
。
然
后
解
析
的
时
候
也
是
一
样
,
我
们
首
先
有
一
个
顶
层
的
解
析
器
:
p
u
b
l
i
c
c
l
a
s
s
S
c
r
i
p
t
V
i
s
i
t
o
r
e
x
t
e
n
d
s
C
f
P
a
r
s
e
r
B
a
s
e
V
i
s
i
t
o
r
<
M
a
p
<
S
t
r
i
n
g
,
S
c
r
i
p
t
V
i
s
i
t
o
r
.
S
c
o
p
e
>
>
{
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
L
o
g
g
e
r
l
o
g
g
e
r
=
L
o
g
g
e
r
F
a
c
t
o
r
y
.
g
e
t
L
o
g
g
e
r
(
S
c
r
i
p
t
V
i
s
i
t
o
r
.
c
l
a
s
s
)
;
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
M
a
p
<
S
t
r
i
n
g
,
S
c
o
p
e
>
v
i
s
i
t
S
c
r
i
p
t
(
C
f
P
a
r
s
e
r
.
S
c
r
i
p
t
C
o
n
t
e
x
t
c
t
x
)
{
.
.
.
}
这
个
负
责
解
析
语
法
文
件
中
定
义
的
块
,
然
后
解
析
里
面
的
:
S
c
o
p
e
V
i
s
i
t
o
r
s
c
o
p
e
V
i
s
i
t
o
r
=
n
e
w
S
c
o
p
e
V
i
s
i
t
o
r
(
c
o
n
t
e
x
t
)
;
c
t
x
.
s
c
o
p
e
(
)
.
f
o
r
E
a
c
h
(
s
c
o
p
e
C
o
n
t
e
x
t
-
>
{
l
o
g
g
e
r
.
d
e
b
u
g
(
"
V
i
s
i
t
s
c
o
p
e
:
{
}
"
,
s
c
o
p
e
C
o
n
t
e
x
t
.
g
e
t
T
e
x
t
(
)
)
;
S
c
o
p
e
s
c
o
p
e
=
s
c
o
p
e
C
o
n
t
e
x
t
.
a
c
c
e
p
t
(
s
c
o
p
e
V
i
s
i
t
o
r
)
;
s
c
o
p
e
s
.
p
u
t
(
s
c
o
p
e
.
n
a
m
e
,
s
c
o
p
e
)
;
}
)
;
这
样
又
实
现
一
个
去
解
析
就
好
了
。
详
细
的
实
现
就
不
多
贴
代
码
了
。
另
外
一
个
问
题
是
,
对
于
错
误
的
处
理
,
我
们
在
哪
一
步
做
?
比
如
b
o
o
l
s
=
"
1
2
3
"
;
这
是
错
误
的
,
我
们
其
实
可
以
在
定
义
的
时
候
就
避
免
这
种
错
误
来
,
但
写
起
来
会
麻
烦
一
些
。
目
前
的
实
现
是
在
中
去
对
逻
辑
进
行
判
断
的
,
前
面
只
做
语
法
检
查
就
可
以
了
。
参
考
HTML view coming soon.
Download PDF
for the full formatted version.