restructure + delete dead code + export api

This commit is contained in:
Marcell Vazquez-Chanlatte 2016-07-09 00:08:58 -07:00
parent 619c2c6524
commit 7438b1712b
2 changed files with 5 additions and 35 deletions

View file

@ -0,0 +1,4 @@
from stl.stl import time_lens, set_time, walk, tree
from stl.stl import dt_sym, t_sym
from stl.stl import LinEq, Var, Interval, NaryOpSTL, Or, And, F, G, ModalOp, Neg
from stl.parser import parse

View file

@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
# TODO: consider using sympy to interpret stuff
# TODO: break out into seperate library
# TODO: allow multiplication to be distributive
# TODO: support reference specific time points
@ -60,16 +59,6 @@ __ = ~r"\s"*
EOL = "\\n"
''')
MATRIX_GRAMMAR = Grammar(r'''
matrix = "[" __ row+ __ "]"
row = consts ";"? __
consts = (const _ consts) / const
const = ~r"[\+\-]?\d+(\.\d+)?"
_ = ~r"\s"+
__ = ~r"\s"*
''')
class STLVisitor(NodeVisitor):
def generic_visit(self, _, children):
@ -156,28 +145,5 @@ class STLVisitor(NodeVisitor):
return 1 if node.text == "+" else -1
class MatrixVisitor(NodeVisitor):
def generic_visit(self, _, children):
return children
def visit_matrix(self, _, children):
_, _, rows, _, _ = children
return rows
def visit_row(self, _, children):
consts, _, _ = children
return consts
def visit_const(self, node, _):
return float(node.text)
def visit_consts(self, _, children):
return list(flatten(children))
def parse_stl(stl_str:str, rule:str="phi") -> "STL":
def parse(stl_str:str, rule:str="phi") -> "STL":
return STLVisitor().visit(STL_GRAMMAR[rule].parse(stl_str))
def parse_matrix(mat_str:str) -> np.array:
return np.array(MatrixVisitor().visit(MATRIX_GRAMMAR.parse(mat_str)))