diff --git a/src/gboml/ast/__init__.py b/src/gboml/ast/__init__.py index 2289b63892b753d6db255962d36f928362138cb4..6b22528906ac022d7b36feece96cee74df48d9f5 100644 --- a/src/gboml/ast/__init__.py +++ b/src/gboml/ast/__init__.py @@ -1,7 +1,7 @@ __all__ = [ "Meta", "GBOMLObject", "VarScope", "VarType", "SOSType", "ObjType", "Operator", "ExpressionObj", "Expression", "BoolExpression", "VarOrParamLeaf", - "VarOrParam", "Array", "Loop", "BaseLoop", "EqLoop", "Function", "BoolExpressionOp", + "VarOrParam", "Array", "Loop", "BaseLoop", "LikeLoop", "Function", "BoolExpressionOp", "BoolExpressionComparison", "ScopeChange", "ImportFile", "Definition", "Constraint", "StdConstraint", "SOSConstraint", "Objective", "VariableDefinition", "Node", "HyperEdge", "NodeDefinition", "HyperEdgeDefinition", diff --git a/src/gboml/ast/loops.py b/src/gboml/ast/loops.py index ce17bdaff35f27dff15c07c61309846b075d47a4..d6d1573c6bbed08eeaf457abcdb8c659ceb9785c 100644 --- a/src/gboml/ast/loops.py +++ b/src/gboml/ast/loops.py @@ -22,7 +22,7 @@ class BaseLoop(Loop): @dataclass -class EqLoop(Loop): +class LikeLoop(Loop): varid: str on: VarOrParam condition: Optional[BoolExpression] diff --git a/src/gboml/gboml.lark b/src/gboml/gboml.lark index a7e96bf14b26484f27fc4552f9524f1d0ce9615b..99f898ea3b726e32b28be983c91150afca23f951 100644 --- a/src/gboml/gboml.lark +++ b/src/gboml/gboml.lark @@ -83,9 +83,9 @@ OBJ_TYPE: "min" | "max" // LOOPS ?loop: multi_loop | implicit_loop -?multi_loop: (base_loop | eq_loop)+ +?multi_loop: (base_loop | like_loop)+ base_loop: "for" ID "in" iterable ["where" bool_expression] -eq_loop: "for" ID "=" var_or_param ["where" bool_expression] +like_loop: "for" ID "like" var_or_param ["where" bool_expression] //var_or_param must point to an indexing param implicit_loop: "where" bool_expression // BOOLEAN EXPRESSIONS diff --git a/src/gboml/parsing.py b/src/gboml/parsing.py index 4b3bc644fca2af7a76e93433e4c2e83d888f11c0..a87584108f3c874c4d4861779775b055fd8d6006 100644 --- a/src/gboml/parsing.py +++ b/src/gboml/parsing.py @@ -92,7 +92,7 @@ class GBOMLParser: "constraint_sos": SOSConstraint, "objective": Objective, "base_loop": BaseLoop, - "eq_loop": EqLoop, + "like_loop": LikeLoop, "implicit_loop": ImplicitLoop, "subtraction": _op_transform(Operator.minus), "sum": _op_transform(Operator.plus),