Skip to content

Commit

Permalink
Merge 486fa1d into 7626a60
Browse files Browse the repository at this point in the history
  • Loading branch information
StrikerRUS committed May 8, 2020
2 parents 7626a60 + 486fa1d commit 0c2016e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
15 changes: 2 additions & 13 deletions m2cgen/interpreters/interpreter.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import re

from m2cgen import ast
from m2cgen.interpreters.utils import CachedResult
from m2cgen.interpreters.utils import CachedResult, _get_handler_name


class BaseInterpreter:
Expand Down Expand Up @@ -55,21 +53,12 @@ def _reset_reused_expr_cache(self):
self._cached_expr_results = {}

def _select_handler(self, expr):
handler_name = self._handler_name(type(expr))
handler_name = _get_handler_name(type(expr))
if hasattr(self, handler_name):
return getattr(self, handler_name)
raise NotImplementedError(
"No handler found for '{}'".format(type(expr).__name__))

@staticmethod
def _handler_name(expr_tpe):
expr_name = BaseInterpreter._normalize_expr_name(expr_tpe.__name__)
return "interpret_" + expr_name

@staticmethod
def _normalize_expr_name(name):
return re.sub("(?!^)([A-Z]+)", r"_\1", name).lower()


class BaseToCodeInterpreter(BaseInterpreter):

Expand Down
13 changes: 13 additions & 0 deletions m2cgen/interpreters/utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import re

from collections import namedtuple
from functools import lru_cache


CachedResult = namedtuple('CachedResult', ['var_name', 'expr_result'])
Expand All @@ -7,3 +10,13 @@
def get_file_content(path):
with open(path) as f:
return f.read()


@lru_cache(maxsize=16)
def _get_handler_name(expr_tpe):
expr_name = _normalize_expr_name(expr_tpe.__name__)
return "interpret_" + expr_name


def _normalize_expr_name(name):
return re.sub("(?!^)([A-Z]+)", r"_\1", name).lower()

0 comments on commit 0c2016e

Please sign in to comment.