From 32108aafd042ddad07b3308b9338c3010dc96298 Mon Sep 17 00:00:00 2001 From: Shawn Presser Date: Sun, 15 May 2022 17:22:09 +0500 Subject: [PATCH] Simplify parsing ceildiv/floordiv/mod --- mlir/lark/mlir.lark | 12 ++++++------ mlir/parser.py | 7 ------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/mlir/lark/mlir.lark b/mlir/lark/mlir.lark index d54dffe..df9c5f6 100644 --- a/mlir/lark/mlir.lark +++ b/mlir/lark/mlir.lark @@ -251,9 +251,9 @@ affine_expr : "(" affine_expr ")" -> affine_parens | affine_expr "-" affine_expr -> affine_sub | posneg_integer_literal "*" affine_expr -> affine_mul | affine_expr "*" posneg_integer_literal -> affine_mul - | affine_expr "&ceildiv&" integer_literal -> affine_ceildiv - | affine_expr "&floordiv&" integer_literal -> affine_floordiv - | affine_expr "&mod&" integer_literal -> affine_mod + | affine_expr "ceildiv" integer_literal -> affine_ceildiv + | affine_expr "floordiv" integer_literal -> affine_floordiv + | affine_expr "mod" integer_literal -> affine_mod | "-" affine_expr -> affine_neg | "symbol" "(" ssa_id ")" -> affine_symbol_explicit | posneg_integer_literal -> affine_literal @@ -265,9 +265,9 @@ semi_affine_expr : "(" semi_affine_expr ")" -> semi_affin | semi_affine_expr "-" semi_affine_expr -> semi_affine_sub | symbol_or_const "*" semi_affine_expr -> semi_affine_mul | semi_affine_expr "*" symbol_or_const -> semi_affine_mul - | semi_affine_expr "&ceildiv&" semi_affine_oprnd -> semi_affine_ceildiv - | semi_affine_expr "&floordiv&" semi_affine_oprnd -> semi_affine_floordiv - | semi_affine_expr "&mod&" semi_affine_oprnd -> semi_affine_mod + | semi_affine_expr "ceildiv" semi_affine_oprnd -> semi_affine_ceildiv + | semi_affine_expr "floordiv" semi_affine_oprnd -> semi_affine_floordiv + | semi_affine_expr "mod" semi_affine_oprnd -> semi_affine_mod | "symbol" "(" symbol_or_const ")" -> semi_affine_symbol_explicit | symbol_or_const -> semi_affine_symbol diff --git a/mlir/parser.py b/mlir/parser.py index 0259ba8..a79fbf1 100644 --- a/mlir/parser.py +++ b/mlir/parser.py @@ -82,13 +82,6 @@ def parse(self, code: str) -> mast.Module: :return: A module node representing the root of the AST. """ - # Pre-transform code to avoid parsing issues with ceildiv/floordiv/mod, - # in which two symbols could be parsed as one legal symbol (due to - # ignoring whitespace): "d0floordivs0" - code = code.replace(' floordiv ', '&floordiv&') - code = code.replace(' ceildiv ', '&ceildiv&') - code = code.replace(' mod ', '&mod&') - # Parse the code using Lark tree = self.parser.parse(code)