示例#1
0
    def test_is_basetype(self):
        true = self.assertTrue
        true( int_t.is_base() )
        true( float_t.is_base() )
        true( str_t.is_base() )
        true( unicode_t.is_base() )
        true( bool_t.is_base() )
        true( unit_t.is_base() )

        equal = self.assertEqual
        equal( PType.int(), int_t )
        equal( PType.float(), float_t )
        equal( PType.string(), str_t )
        equal( PType.unicode(), unicode_t )
        equal( PType.bool(), bool_t )
        equal( PType.unit(), unit_t )
        all(equal(PType.from_str(k), v) for (k,v) in base_ts.iteritems())
示例#2
0
import sys
import unittest
from lepl import sexpr_to_tree

# Include src in the Python search path
sys.path.insert(0, '../src')

from ptype import (PType, TypeSpecParser, better_sexpr_to_tree, Lst, Stt, Tup,
                   Mpp, Arr)

int_t = PType.int()
float_t = PType.float()
str_t = PType.string()
unicode_t = PType.unicode()
bool_t = PType.bool()
unit_t = PType.unit()

base_ts = {"int": int_t, "float": float_t, "str": str_t, "unicode": unicode_t,
           "bool": bool_t, "unit": unit_t}

class PTypeTests(unittest.TestCase):

    def test_is_basetype(self):
        true = self.assertTrue
        true( int_t.is_base() )
        true( float_t.is_base() )
        true( str_t.is_base() )
        true( unicode_t.is_base() )
        true( bool_t.is_base() )
        true( unit_t.is_base() )
示例#3
0
文件: check.py 项目: jruberg/Pyty
from settings import DEBUG_TYPECHECK
from logger import Logger
from ast_extensions import TypeDec
from infer import infer_expr, env_get

log = None

def t_debug(s, cond=True):
    log.debug(s, DEBUG_TYPECHECK and cond)

def call_function(fun_name, *args, **kwargs):
    return globals()[fun_name](*args, **kwargs)

int_t = PType.int()
float_t = PType.float()
bool_t = PType.bool()
str_t = PType.string()
unicode_t = PType.unicode()
unit_t = PType.unit()

bool_ops = set([ast.And, ast.Or])
arith_ops = set([ast.Add, ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod,
                 ast.Pow])
bit_ops = set([ast.LShift, ast.RShift, ast.BitOr, ast.BitAnd, ast.BitXor])
bin_ops = arith_ops | bit_ops
unary_ops = set([ast.Invert, ast.Not, ast.UAdd, ast.USub])

comp_eq_ops = set([ast.Eq, ast.NotEq, ast.Is, ast.IsNot])
comp_num_ops = set([ast.Lt, ast.LtE, ast.Gt, ast.GtE])
comp_ops = comp_num_ops | comp_eq_ops