openscad-parser 2.5.1__tar.gz → 2.5.2__tar.gz
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.
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/PKG-INFO +1 -1
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/pyproject.toml +1 -1
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/builder.py +7 -3
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/nodes.py +3 -3
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/README.rst +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/__init__.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/__init__.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/pretty_print.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/scope.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/serialization.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/ast/source_map.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/cli.py +0 -0
- {openscad_parser-2.5.1 → openscad_parser-2.5.2}/src/openscad_parser/grammar.py +0 -0
|
@@ -986,10 +986,14 @@ class ASTBuilderVisitor(PTNodeVisitor):
|
|
|
986
986
|
return children[0]
|
|
987
987
|
|
|
988
988
|
def visit_range_expr(self, node, children):
|
|
989
|
+
# OpenSCAD syntax: [start:end] or [start:step:end]
|
|
989
990
|
start = children[0]
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
991
|
+
if len(children) > 2:
|
|
992
|
+
step = children[1]
|
|
993
|
+
end = children[2]
|
|
994
|
+
else:
|
|
995
|
+
end = children[1]
|
|
996
|
+
step = NumberLiteral(val=1.0, position=self._get_node_position(node))
|
|
993
997
|
return RangeLiteral(start=start, end=end, step=step, position=self._get_node_position(node))
|
|
994
998
|
|
|
995
999
|
def visit_vector_expr(self, node, children):
|
|
@@ -380,8 +380,8 @@ class RangeLiteral(Primary):
|
|
|
380
380
|
|
|
381
381
|
Examples:
|
|
382
382
|
[0:10] // Range from 0 to 10 with step 1
|
|
383
|
-
[0:10
|
|
384
|
-
[10:0
|
|
383
|
+
[0:2:10] // Range from 0 to 10 with step 2
|
|
384
|
+
[10:-1:0] // Range from 10 to 0 with step -1
|
|
385
385
|
|
|
386
386
|
Attributes:
|
|
387
387
|
start: The starting value of the range.
|
|
@@ -393,7 +393,7 @@ class RangeLiteral(Primary):
|
|
|
393
393
|
step: Expression
|
|
394
394
|
|
|
395
395
|
def __str__(self):
|
|
396
|
-
return f"[{self.start} : {self.
|
|
396
|
+
return f"[{self.start} : {self.step} : {self.end}]"
|
|
397
397
|
|
|
398
398
|
def build_scope(self, parent_scope: "Scope") -> None:
|
|
399
399
|
self.scope = parent_scope
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|