-
Notifications
You must be signed in to change notification settings - Fork 0
/
posestack.ebnf
83 lines (47 loc) · 2.24 KB
/
posestack.ebnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
(*! © 2023 imaoki | MIT License | https://github.com/imaoki *)
file = pose_version , "\n" , poses ;
pose_version = { digit }+ ;
poses = { pose , "\n" } ;
pose = pose_name , "=" , pose_transforms ;
pose_name = { any_char - illegal_char }+ ;
pose_transforms = { pose_transform , ";" }+ ;
pose_transform = transform_header , transform_values ;
transform_header = transform_node , "[" , pose_setting , "]" ;
transform_node = "|" , node_name , { "|" , node_name } ;
node_name = ( letter | "_" ) , { letter | digit | "_" } ;
pose_setting = paste_setting , "/"
, select_setting , "/"
, mirror_setting ;
paste_setting = paste_x , "," , paste_y , "," , paste_z ;
paste_x = boolean ;
paste_y = boolean ;
paste_z = boolean ;
select_setting = select_pattern_a , "," , select_pattern_b ;
select_pattern_a = select_pattern ;
select_pattern_b = select_pattern ;
select_pattern = { letter | digit | "_" | "|" }+ ;
mirror_setting = mirror_axis
, "," , primary_axis
, "," , secondary_axis
, "," , invertPrimary_axis
, "," , invertSecondary_axis ;
mirror_axis = axis ;
primary_axis = axis ;
secondary_axis = axis ;
invert_primary_axis = boolean ;
invert_secondary_axis = boolean ;
axis = "0" | "1" | "2" ;
boolean = "0" | "1" ;
transform_values = translate
, "," , quaternion
, "," , scale
, "," , shear ;
translate = number , "," , number , "," , number ;
quaternion = number , "," , number , "," , number , "," , number ;
scale = number , "," , number , "," , number ;
shear = number , "," , number , "," , number ;
number = [ "-" ] , ( integer | real ) ;
digit = ? 0-9 ? ;
letter = ? a-zA-Z ? ;
illegal_char = "!" | "=" | ";" | "[" | "]" | "/" | "," ;
any_char = ? Any visible characters ? ;