planscript 1.0.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LANGUAGE_REFERENCE.md +754 -0
- package/README.md +98 -107
- package/dist/ast/types.d.ts +11 -1
- package/dist/ast/types.d.ts.map +1 -1
- package/dist/exporters/svg.d.ts.map +1 -1
- package/dist/exporters/svg.js +126 -1
- package/dist/exporters/svg.js.map +1 -1
- package/dist/geometry/index.d.ts.map +1 -1
- package/dist/geometry/index.js +70 -16
- package/dist/geometry/index.js.map +1 -1
- package/dist/parser/grammar.d.ts +11 -4
- package/dist/parser/grammar.d.ts.map +1 -1
- package/dist/parser/grammar.js +578 -170
- package/dist/parser/grammar.js.map +1 -1
- package/examples/casa_moderna.psc +375 -0
- package/examples/casa_moderna_v2.psc +406 -0
- package/examples/casa_moderna_v3.psc +375 -0
- package/examples/casa_moderna_v5.psc +397 -0
- package/examples/house2.psc +156 -0
- package/examples/house2.svg +103 -0
- package/examples/house3.svg +139 -0
- package/package.json +2 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="800" viewBox="0 0 1000 800">
|
|
3
|
+
<defs>
|
|
4
|
+
<style>
|
|
5
|
+
.room-label { font-family: Arial, sans-serif; font-weight: 500; }
|
|
6
|
+
</style>
|
|
7
|
+
</defs>
|
|
8
|
+
|
|
9
|
+
<!-- Background -->
|
|
10
|
+
<rect width="1000" height="800" fill="#ffffff" />
|
|
11
|
+
|
|
12
|
+
<!-- Footprint (boundary) -->
|
|
13
|
+
<path d="M 302.58 740.00 L 697.42 740.00 L 697.42 60.00 L 302.58 60.00 Z" fill="none" stroke="#7f8c8d" stroke-width="2" stroke-dasharray="8,4" />
|
|
14
|
+
|
|
15
|
+
<!-- Rooms -->
|
|
16
|
+
<path d="M 302.58 740.00 L 434.19 740.00 L 434.19 630.32 L 302.58 630.32 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
17
|
+
<path d="M 434.19 740.00 L 565.81 740.00 L 565.81 630.32 L 434.19 630.32 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
18
|
+
<path d="M 565.81 740.00 L 697.42 740.00 L 697.42 630.32 L 565.81 630.32 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
19
|
+
<path d="M 302.58 630.32 L 412.26 630.32 L 412.26 498.71 L 302.58 498.71 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
20
|
+
<path d="M 412.26 630.32 L 697.42 630.32 L 697.42 498.71 L 412.26 498.71 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
21
|
+
<path d="M 302.58 498.71 L 456.13 498.71 L 456.13 367.10 L 302.58 367.10 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
22
|
+
<path d="M 456.13 498.71 L 697.42 498.71 L 697.42 367.10 L 456.13 367.10 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
23
|
+
<path d="M 456.13 367.10 L 543.87 367.10 L 543.87 147.74 L 456.13 147.74 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
24
|
+
<path d="M 302.58 367.10 L 456.13 367.10 L 456.13 257.42 L 302.58 257.42 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
25
|
+
<path d="M 543.87 367.10 L 631.61 367.10 L 631.61 279.35 L 543.87 279.35 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
26
|
+
<path d="M 302.58 257.42 L 456.13 257.42 L 456.13 147.74 L 302.58 147.74 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
27
|
+
<path d="M 631.61 367.10 L 697.42 367.10 L 697.42 279.35 L 631.61 279.35 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
28
|
+
<path d="M 543.87 279.35 L 697.42 279.35 L 697.42 147.74 L 543.87 147.74 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
29
|
+
<path d="M 302.58 147.74 L 500.00 147.74 L 500.00 60.00 L 302.58 60.00 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
30
|
+
<path d="M 500.00 147.74 L 587.74 147.74 L 587.74 60.00 L 500.00 60.00 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
31
|
+
<path d="M 587.74 147.74 L 697.42 147.74 L 697.42 60.00 L 587.74 60.00 Z" fill="#ecf0f1" stroke="#bdc3c7" stroke-width="1" />
|
|
32
|
+
|
|
33
|
+
<!-- Walls -->
|
|
34
|
+
<line x1="434.19" y1="740.00" x2="434.19" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
35
|
+
<line x1="302.58" y1="630.32" x2="412.26" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
36
|
+
<line x1="412.26" y1="630.32" x2="434.19" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
37
|
+
<line x1="565.81" y1="740.00" x2="565.81" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
38
|
+
<line x1="434.19" y1="630.32" x2="565.81" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
39
|
+
<line x1="565.81" y1="630.32" x2="697.42" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
40
|
+
<line x1="412.26" y1="630.32" x2="412.26" y2="498.71" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
41
|
+
<line x1="302.58" y1="498.71" x2="412.26" y2="498.71" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
42
|
+
<line x1="412.26" y1="498.71" x2="456.13" y2="498.71" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
43
|
+
<line x1="456.13" y1="498.71" x2="697.42" y2="498.71" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
44
|
+
<line x1="456.13" y1="498.71" x2="456.13" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
45
|
+
<line x1="302.58" y1="367.10" x2="456.13" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
46
|
+
<line x1="456.13" y1="367.10" x2="543.87" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
47
|
+
<line x1="543.87" y1="367.10" x2="631.61" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
48
|
+
<line x1="631.61" y1="367.10" x2="697.42" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
49
|
+
<line x1="543.87" y1="367.10" x2="543.87" y2="279.35" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
50
|
+
<line x1="543.87" y1="279.35" x2="543.87" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
51
|
+
<line x1="456.13" y1="147.74" x2="500.00" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
52
|
+
<line x1="500.00" y1="147.74" x2="543.87" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
53
|
+
<line x1="456.13" y1="367.10" x2="456.13" y2="257.42" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
54
|
+
<line x1="456.13" y1="257.42" x2="456.13" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
55
|
+
<line x1="302.58" y1="257.42" x2="456.13" y2="257.42" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
56
|
+
<line x1="631.61" y1="367.10" x2="631.61" y2="279.35" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
57
|
+
<line x1="543.87" y1="279.35" x2="631.61" y2="279.35" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
58
|
+
<line x1="302.58" y1="147.74" x2="456.13" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
59
|
+
<line x1="631.61" y1="279.35" x2="697.42" y2="279.35" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
60
|
+
<line x1="543.87" y1="147.74" x2="587.74" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
61
|
+
<line x1="587.74" y1="147.74" x2="697.42" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
62
|
+
<line x1="500.00" y1="147.74" x2="500.00" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
63
|
+
<line x1="587.74" y1="147.74" x2="587.74" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
64
|
+
<line x1="302.58" y1="740.00" x2="434.19" y2="740.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
65
|
+
<line x1="302.58" y1="740.00" x2="302.58" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
66
|
+
<line x1="434.19" y1="740.00" x2="565.81" y2="740.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
67
|
+
<line x1="565.81" y1="740.00" x2="697.42" y2="740.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
68
|
+
<line x1="697.42" y1="740.00" x2="697.42" y2="630.32" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
69
|
+
<line x1="302.58" y1="630.32" x2="302.58" y2="498.71" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
70
|
+
<line x1="697.42" y1="630.32" x2="697.42" y2="498.71" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
71
|
+
<line x1="302.58" y1="498.71" x2="302.58" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
72
|
+
<line x1="697.42" y1="498.71" x2="697.42" y2="367.10" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
73
|
+
<line x1="302.58" y1="367.10" x2="302.58" y2="257.42" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
74
|
+
<line x1="302.58" y1="257.42" x2="302.58" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
75
|
+
<line x1="697.42" y1="367.10" x2="697.42" y2="279.35" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
76
|
+
<line x1="697.42" y1="279.35" x2="697.42" y2="147.74" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
77
|
+
<line x1="302.58" y1="60.00" x2="500.00" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
78
|
+
<line x1="302.58" y1="147.74" x2="302.58" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
79
|
+
<line x1="500.00" y1="60.00" x2="587.74" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
80
|
+
<line x1="697.42" y1="147.74" x2="697.42" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
81
|
+
<line x1="587.74" y1="60.00" x2="697.42" y2="60.00" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" />
|
|
82
|
+
|
|
83
|
+
<!-- Openings (doors/windows) -->
|
|
84
|
+
<line x1="486.84" y1="740.00" x2="513.16" y2="740.00" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
85
|
+
<line x1="313.55" y1="740.00" x2="423.23" y2="740.00" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
86
|
+
<line x1="434.19" y1="695.03" x2="434.19" y2="675.29" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
87
|
+
<line x1="621.74" y1="740.00" x2="641.48" y2="740.00" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
88
|
+
<line x1="565.81" y1="695.03" x2="565.81" y2="675.29" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
89
|
+
<line x1="483.55" y1="630.32" x2="516.45" y2="630.32" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
90
|
+
<line x1="412.26" y1="574.39" x2="412.26" y2="554.65" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
91
|
+
<line x1="549.35" y1="498.71" x2="604.19" y2="498.71" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
92
|
+
<line x1="421.03" y1="498.71" x2="447.35" y2="498.71" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
93
|
+
<line x1="456.13" y1="446.06" x2="456.13" y2="419.74" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
94
|
+
<line x1="490.13" y1="367.10" x2="509.87" y2="367.10" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
95
|
+
<line x1="456.13" y1="322.13" x2="456.13" y2="302.39" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
96
|
+
<line x1="456.13" y1="212.45" x2="456.13" y2="192.71" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
97
|
+
<line x1="543.87" y1="332.00" x2="543.87" y2="314.45" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
98
|
+
<line x1="543.87" y1="223.42" x2="543.87" y2="203.68" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
99
|
+
<line x1="468.19" y1="147.74" x2="487.94" y2="147.74" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
100
|
+
<line x1="500.00" y1="113.74" x2="500.00" y2="94.00" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
101
|
+
<line x1="587.74" y1="112.65" x2="587.74" y2="95.10" stroke="#e74c3c" stroke-width="4" stroke-linecap="round" />
|
|
102
|
+
<line x1="335.48" y1="630.32" x2="379.35" y2="630.32" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
103
|
+
<line x1="302.58" y1="701.61" x2="302.58" y2="668.71" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
104
|
+
<line x1="302.58" y1="586.45" x2="302.58" y2="542.58" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
105
|
+
<line x1="302.58" y1="454.84" x2="302.58" y2="410.97" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
106
|
+
<line x1="302.58" y1="312.26" x2="302.58" y2="268.39" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
107
|
+
<line x1="302.58" y1="224.52" x2="302.58" y2="180.65" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
108
|
+
<line x1="302.58" y1="81.94" x2="302.58" y2="16.13" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
109
|
+
<line x1="697.42" y1="698.32" x2="697.42" y2="672.00" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
110
|
+
<line x1="697.42" y1="520.65" x2="697.42" y2="454.84" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
111
|
+
<line x1="697.42" y1="410.97" x2="697.42" y2="345.16" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
112
|
+
<line x1="697.42" y1="334.19" x2="697.42" y2="312.26" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
113
|
+
<line x1="697.42" y1="240.97" x2="697.42" y2="186.13" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
114
|
+
<line x1="697.42" y1="106.06" x2="697.42" y2="79.74" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
115
|
+
<line x1="368.39" y1="60.00" x2="434.19" y2="60.00" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
116
|
+
<line x1="527.42" y1="60.00" x2="560.32" y2="60.00" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
117
|
+
<line x1="629.42" y1="60.00" x2="655.74" y2="60.00" stroke="#3498db" stroke-width="3" stroke-linecap="round" />
|
|
118
|
+
|
|
119
|
+
<!-- Labels -->
|
|
120
|
+
<text x="368.39" y="685.16" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Cochera</text>
|
|
121
|
+
<text x="500.00" y="685.16" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Hall</text>
|
|
122
|
+
<text x="631.61" y="685.16" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Lavadero</text>
|
|
123
|
+
<text x="357.42" y="564.52" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Oficina</text>
|
|
124
|
+
<text x="554.84" y="564.52" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Living</text>
|
|
125
|
+
<text x="379.35" y="432.90" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Cocina</text>
|
|
126
|
+
<text x="576.77" y="432.90" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Comedor</text>
|
|
127
|
+
<text x="500.00" y="257.42" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Pasillo</text>
|
|
128
|
+
<text x="379.35" y="312.26" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Dormitorio 2</text>
|
|
129
|
+
<text x="587.74" y="323.23" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Baño</text>
|
|
130
|
+
<text x="379.35" y="202.58" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Dormitorio 3</text>
|
|
131
|
+
<text x="664.52" y="323.23" font-size="13" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Placard</text>
|
|
132
|
+
<text x="620.65" y="213.55" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Estar Íntimo</text>
|
|
133
|
+
<text x="401.29" y="103.87" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Suite Principal</text>
|
|
134
|
+
<text x="543.87" y="103.87" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Vestidor</text>
|
|
135
|
+
<text x="642.58" y="103.87" font-size="14" fill="#2c3e50" text-anchor="middle" dominant-baseline="middle" font-family="Arial, sans-serif">Baño Suite</text>
|
|
136
|
+
|
|
137
|
+
<!-- Dimensions -->
|
|
138
|
+
|
|
139
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "planscript",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "PlanScript - A DSL for defining floor plans",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"examples",
|
|
20
20
|
"README.md",
|
|
21
|
+
"LANGUAGE_REFERENCE.md",
|
|
21
22
|
"LICENSE"
|
|
22
23
|
],
|
|
23
24
|
"scripts": {
|