本文整理汇总了Python中vartypes.pass_int_unpack函数的典型用法代码示例。如果您正苦于以下问题:Python pass_int_unpack函数的具体用法?Python pass_int_unpack怎么用?Python pass_int_unpack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pass_int_unpack函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: number_modulo
def number_modulo(left, right):
""" Left MOD right. """
divisor = vartypes.pass_int_unpack(right)
dividend = vartypes.pass_int_unpack(left)
if divisor == 0:
# division by zero, return single-precision maximum
raise ZeroDivisionError(fp.Single(dividend<0, fp.Single.max.man, fp.Single.max.exp))
mod = dividend % divisor
if dividend < 0 or mod < 0:
mod -= divisor
return vartypes.int_to_integer_signed(mod)
开发者ID:gilsim12,项目名称:pcbasic,代码行数:11,代码来源:operators.py
示例2: number_intdiv
def number_intdiv(left, right):
""" Left\\right. """
dividend = vartypes.pass_int_unpack(left)
divisor = vartypes.pass_int_unpack(right)
if divisor == 0:
# division by zero, return single-precision maximum
raise ZeroDivisionError(fp.Single(dividend<0, fp.Single.max.man, fp.Single.max.exp))
if (dividend >= 0) == (divisor >= 0):
return vartypes.int_to_integer_signed(dividend / divisor)
else:
return vartypes.int_to_integer_signed(-(abs(dividend) / abs(divisor)))
开发者ID:gilsim12,项目名称:pcbasic,代码行数:11,代码来源:operators.py
示例3: value_string
def value_string(ins):
""" STRING$: repeat characters. """
util.require_read(ins, ('(',))
n, j = parse_expr_list(ins, 2)
n = vartypes.pass_int_unpack(n)
util.range_check(0, 255, n)
if j[0] == '$':
j = vartypes.unpack_string(j)
util.range_check(1, 255, len(j))
j = j[0]
else:
j = vartypes.pass_int_unpack(j)
util.range_check(0, 255, j)
util.require_read(ins, (')',))
return vartypes.pack_string(bytearray(chr(j)*n))
开发者ID:nony05,项目名称:pcbasic,代码行数:15,代码来源:expressions.py
示例4: value_string
def value_string(ins):
""" STRING$: repeat characters. """
util.require_read(ins, ('(',))
n = vartypes.pass_int_unpack(parse_expression(ins))
util.range_check(0, 255, n)
util.require_read(ins, (',',))
j = parse_expression(ins)
if j[0] == '$':
j = var.copy_str(j)
util.range_check(1, 255, len(j))
j = ord(j[0])
else:
j = vartypes.pass_int_unpack(j)
util.range_check(0, 255, j)
util.require_read(ins, (')',))
return state.basic_state.strings.store(chr(j)*n)
开发者ID:gilsim12,项目名称:pcbasic,代码行数:16,代码来源:expressions.py
示例5: value_point
def value_point(ins):
""" POINT: get pixel attribute at screen location. """
util.require_read(ins, ('(',))
lst = parse_expr_list(ins, 2, err=error.STX)
util.require_read(ins, (')',))
if not lst[0]:
raise error.RunError(error.STX)
screen = state.console_state.screen
if not lst[1]:
# single-argument version
try:
x, y = screen.drawing.last_point
fn = vartypes.pass_int_unpack(lst[0])
if fn == 0:
return vartypes.pack_int(x)
elif fn == 1:
return vartypes.pack_int(y)
elif fn == 2:
fx, _ = screen.drawing.get_window_logical(x, y)
return fp.pack(fx)
elif fn == 3:
_, fy = screen.drawing.get_window_logical(x, y)
return fp.pack(fy)
except AttributeError:
return vartypes.null['%']
else:
# two-argument mode
if screen.mode.is_text_mode:
raise error.RunError(error.IFC)
return vartypes.pack_int(screen.drawing.point(
(fp.unpack(vartypes.pass_single_keep(lst[0])),
fp.unpack(vartypes.pass_single_keep(lst[1])), False)))
开发者ID:nony05,项目名称:pcbasic,代码行数:32,代码来源:expressions.py
示例6: value_play
def value_play(ins):
""" PLAY: get length of music queue. """
voice = vartypes.pass_int_unpack(parse_bracket(ins))
util.range_check(0, 255, voice)
if not(is_pcjr_syntax and voice in (1, 2)):
voice = 0
return vartypes.int_to_integer_signed(state.console_state.sound.queue_length(voice))
开发者ID:gilsim12,项目名称:pcbasic,代码行数:7,代码来源:expressions.py
示例7: value_loc
def value_loc(ins):
""" LOC: get file pointer. """
util.skip_white(ins)
num = vartypes.pass_int_unpack(parse_bracket(ins), maxint=0xffff)
util.range_check(0, 255, num)
the_file = devices.get_file(num)
return vartypes.pack_int(the_file.loc())
开发者ID:nony05,项目名称:pcbasic,代码行数:7,代码来源:expressions.py
示例8: value_point
def value_point(ins):
""" POINT: get pixel attribute at screen location. """
util.require_read(ins, ('(',))
arg0 = parse_expression(ins)
screen = state.console_state.screen
if util.skip_white_read_if(ins, (',',)):
# two-argument mode
arg1 = parse_expression(ins)
util.require_read(ins, (')',))
if screen.mode.is_text_mode:
raise error.RunError(error.IFC)
return vartypes.int_to_integer_signed(screen.drawing.point(
(fp.unpack(vartypes.pass_single(arg0)),
fp.unpack(vartypes.pass_single(arg1)), False)))
else:
# single-argument mode
util.require_read(ins, (')',))
try:
x, y = screen.drawing.last_point
fn = vartypes.pass_int_unpack(arg0)
if fn == 0:
return vartypes.int_to_integer_signed(x)
elif fn == 1:
return vartypes.int_to_integer_signed(y)
elif fn == 2:
fx, _ = screen.drawing.get_window_logical(x, y)
return fp.pack(fx)
elif fn == 3:
_, fy = screen.drawing.get_window_logical(x, y)
return fp.pack(fy)
except AttributeError:
return vartypes.null('%')
开发者ID:gilsim12,项目名称:pcbasic,代码行数:32,代码来源:expressions.py
示例9: value_lof
def value_lof(ins):
""" LOF: get length of file. """
util.skip_white(ins)
num = vartypes.pass_int_unpack(parse_bracket(ins), maxint=0xffff)
util.range_check(0, 255, num)
the_file = devices.get_file(num)
return fp.pack(fp.Single.from_int(the_file.lof()))
开发者ID:gilsim12,项目名称:pcbasic,代码行数:7,代码来源:expressions.py
示例10: value_operator
def value_operator(op, left, right):
""" Get value of binary operator expression. """
if op == tk.O_CARET:
return vcaret(left, right)
elif op == tk.O_TIMES:
return vtimes(left, right)
elif op == tk.O_DIV:
return vdiv(left, right)
elif op == tk.O_INTDIV:
return fp.pack(fp.div(fp.unpack(vartypes.pass_single_keep(left)).ifloor(),
fp.unpack(vartypes.pass_single_keep(right)).ifloor()).apply_carry().ifloor())
elif op == tk.MOD:
numerator = vartypes.pass_int_unpack(right)
if numerator == 0:
# simulate division by zero
return fp.pack(fp.div(fp.unpack(vartypes.pass_single_keep(left)).ifloor(),
fp.unpack(vartypes.pass_single_keep(right)).ifloor()).ifloor())
return vartypes.pack_int(vartypes.pass_int_unpack(left) % numerator)
elif op == tk.O_PLUS:
return vplus(left, right)
elif op == tk.O_MINUS:
return vartypes.number_add(left, vartypes.number_neg(right))
elif op == tk.O_GT:
return vartypes.bool_to_int_keep(vartypes.gt(left,right))
elif op == tk.O_EQ:
return vartypes.bool_to_int_keep(vartypes.equals(left, right))
elif op == tk.O_LT:
return vartypes.bool_to_int_keep(not(vartypes.gt(left,right) or vartypes.equals(left, right)))
elif op == tk.O_GT + tk.O_EQ:
return vartypes.bool_to_int_keep(vartypes.gt(left,right) or vartypes.equals(left, right))
elif op == tk.O_LT + tk.O_EQ:
return vartypes.bool_to_int_keep(not vartypes.gt(left,right))
elif op == tk.O_LT + tk.O_GT:
return vartypes.bool_to_int_keep(not vartypes.equals(left, right))
elif op == tk.AND:
return vartypes.twoscomp_to_int( vartypes.pass_twoscomp(left) & vartypes.pass_twoscomp(right) )
elif op == tk.OR:
return vartypes.twoscomp_to_int( vartypes.pass_twoscomp(left) | vartypes.pass_twoscomp(right) )
elif op == tk.XOR:
return vartypes.twoscomp_to_int( vartypes.pass_twoscomp(left) ^ vartypes.pass_twoscomp(right) )
elif op == tk.EQV:
return vartypes.twoscomp_to_int( ~(vartypes.pass_twoscomp(left) ^ vartypes.pass_twoscomp(right)) )
elif op == tk.IMP:
return vartypes.twoscomp_to_int( (~vartypes.pass_twoscomp(left)) | vartypes.pass_twoscomp(right) )
else:
raise error.RunError(error.STX)
开发者ID:nony05,项目名称:pcbasic,代码行数:46,代码来源:expressions.py
示例11: parse_file_number
def parse_file_number(ins, file_mode='IOAR'):
""" Helper function: parse a file number and retrieve the file object. """
screen = None
if util.skip_white_read_if(ins, ('#',)):
number = vartypes.pass_int_unpack(parse_expression(ins))
util.range_check(0, 255, number)
screen = devices.get_file(number, file_mode)
util.require_read(ins, (',',))
return screen
开发者ID:gilsim12,项目名称:pcbasic,代码行数:9,代码来源:expressions.py
示例12: value_pen
def value_pen(ins):
""" PEN: poll the light pen. """
fn = vartypes.pass_int_unpack(parse_bracket(ins))
util.range_check(0, 9, fn)
pen = state.console_state.pen.poll(fn)
if pen is None or not state.basic_state.events.pen.enabled:
# should return 0 or char pos 1 if PEN not ON
pen = 1 if fn >= 6 else 0
return vartypes.int_to_integer_signed(pen)
开发者ID:gilsim12,项目名称:pcbasic,代码行数:9,代码来源:expressions.py
示例13: value_eof
def value_eof(ins):
""" EOF: get end-of-file. """
util.skip_white(ins)
num = vartypes.pass_int_unpack(parse_bracket(ins), maxint=0xffff)
if num == 0:
return vartypes.null('%')
util.range_check(0, 255, num)
the_file = devices.get_file(num, 'IR')
return vartypes.bool_to_integer(the_file.eof())
开发者ID:gilsim12,项目名称:pcbasic,代码行数:9,代码来源:expressions.py
示例14: value_lpos
def value_lpos(ins):
""" LPOS: get the current printer column. """
num = vartypes.pass_int_unpack(parse_bracket(ins))
util.range_check(0, 3, num)
printer = state.io_state.devices['LPT' + max(1, num) + ':']
if printer.device_file:
return vartypes.int_to_integer_signed(printer.device_file.col)
else:
return vartypes.int_to_integer_signed(1)
开发者ID:gilsim12,项目名称:pcbasic,代码行数:9,代码来源:expressions.py
示例15: value_mid
def value_mid(ins):
""" MID$: get substring. """
util.require_read(ins, ('(',))
s = var.copy_str(vartypes.pass_string(parse_expression(ins)))
util.require_read(ins, (',',))
start = vartypes.pass_int_unpack(parse_expression(ins))
if util.skip_white_read_if(ins, (',',)):
num = vartypes.pass_int_unpack(parse_expression(ins))
else:
num = len(s)
util.require_read(ins, (')',))
util.range_check(1, 255, start)
util.range_check(0, 255, num)
if num == 0 or start > len(s):
return vartypes.null('$')
start -= 1
stop = start + num
stop = min(stop, len(s))
return state.basic_state.strings.store(s[start:stop])
开发者ID:gilsim12,项目名称:pcbasic,代码行数:19,代码来源:expressions.py
示例16: value_environ
def value_environ(ins):
""" ENVIRON$: get environment string. """
util.require_read(ins, ('$',))
expr = parse_bracket(ins)
if expr[0] == '$':
return state.basic_state.strings.store(shell.get_env(var.copy_str(expr)))
else:
expr = vartypes.pass_int_unpack(expr)
util.range_check(1, 255, expr)
return state.basic_state.strings.store(shell.get_env_entry(expr))
开发者ID:gilsim12,项目名称:pcbasic,代码行数:10,代码来源:expressions.py
示例17: value_screen
def value_screen(ins):
""" SCREEN: get char or attribute at a location. """
util.require_read(ins, ('(',))
row = vartypes.pass_int_unpack(parse_expression(ins))
util.require_read(ins, (',',), err=error.IFC)
col = vartypes.pass_int_unpack(parse_expression(ins))
z = 0
if util.skip_white_read_if(ins, (',',)):
z = vartypes.pass_int_unpack(parse_expression(ins))
cmode = state.console_state.screen.mode
util.range_check(1, cmode.height, row)
if state.console_state.view_set:
util.range_check(state.console_state.view_start, state.console_state.scroll_height, row)
util.range_check(1, cmode.width, col)
util.range_check(0, 255, z)
util.require_read(ins, (')',))
if z and not cmode.is_text_mode:
return vartypes.null('%')
else:
return vartypes.int_to_integer_signed(state.console_state.screen.apage.get_char_attr(row, col, z!=0))
开发者ID:gilsim12,项目名称:pcbasic,代码行数:20,代码来源:expressions.py
示例18: type_converter
def type_converter(self, v_val):
if (v_val[0] == '%'):
return vartypes.pass_int_unpack(v_val)
elif (v_val[0] == '!'):
return fp.Single.from_bytes(v_val[1]).to_value()
elif (v_val[0] == '#'):
return fp.Double.from_bytes(v_val[1]).to_value()
elif (v_val[0] == '$'):
return str(vartypes.pass_string_unpack(v_val))
else:
raise error.RunError(error.TYPE_MISMATCH)
开发者ID:nestormh,项目名称:pcbasic,代码行数:11,代码来源:gwbasic2python.py
示例19: value_right
def value_right(ins):
""" RIGHT$: get substring at the end of string. """
util.require_read(ins, ('(',))
s = var.copy_str(vartypes.pass_string(parse_expression(ins)))
util.require_read(ins, (',',))
stop = vartypes.pass_int_unpack(parse_expression(ins))
util.require_read(ins, (')',))
util.range_check(0, 255, stop)
if stop == 0:
return vartypes.null('$')
stop = min(stop, len(s))
return state.basic_state.strings.store(s[-stop:])
开发者ID:gilsim12,项目名称:pcbasic,代码行数:12,代码来源:expressions.py
示例20: value_left
def value_left(ins):
""" LEFT$: get substring at the start of string. """
util.require_read(ins, ('(',))
s = vartypes.pass_string_unpack(parse_expression(ins))
util.require_read(ins, (',',))
stop = vartypes.pass_int_unpack(parse_expression(ins))
util.require_read(ins, (')',))
util.range_check(0, 255, stop)
if stop == 0:
return vartypes.null['$']
stop = min(stop, len(s))
return vartypes.pack_string(s[:stop])
开发者ID:nony05,项目名称:pcbasic,代码行数:12,代码来源:expressions.py
注:本文中的vartypes.pass_int_unpack函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论