脚本引擎、编译器
perry_peng
***
展开
-
Python写个Basic解析器(1)表达式。
Testing...原创 2012-04-03 12:55:54 · 481 阅读 · 0 评论 -
TINYC写个8052虚拟机(4) 宏定义。 .
#define REGx(x) csp->ram[REG_##x]#define RAMx(x) csp->ram[x]#define ROMx(x) csp->rom[x]#define BIT(a) (RAMx((a) & 0xf8) & (1 << ((a) & 0x07)))#define BIT_SET(a) RAMx((a) &原创 2013-01-11 21:29:33 · 656 阅读 · 0 评论 -
TINYC写个8052虚拟机(3) Intel MCS-805x寄存器定义
/// SFRs address, * denote the register can be bit addressable.#define REG_ACC 0xe0 /// * Accumulator#define REG_B 0xf0 /// * B register#define REG_PSW 0xd0原创 2013-01-11 21:20:29 · 1191 阅读 · 0 评论 -
TINYC写个8052虚拟机(1) Intel HEX文件格式转换为BIN。
void cState_LoadHex(cStatePtr csp, const char *file){ FILE *fp; int ch; uint16 len, addr, rec_type, data; char buff[5]; fp = fopen(file, "r"); while (!feof(fp)) { ch =原创 2013-01-11 21:16:25 · 807 阅读 · 0 评论 -
利用代码扫描器实现简单的语法高亮显示(代码转为HTML)
上一篇讲过用Python实现的Basic脚扫描,这里可以利用它实现语法高亮,其它语言应该也没问题,改下关键字和符号表。#! /usr/bin/env python## Copyright (C) 2012 xxx(xx) Co., LTD.# All rights reserved.## Developed by RD BIOS Team.## Authors: per原创 2012-04-09 08:25:30 · 755 阅读 · 0 评论 -
Python写个Basic解析器(1)解析全局变量声明。
def _make_dim(self): while True: ''' 变量必须是一个标识符,但如使用了某个保留的关键字 将引起一个错误。 ''' if self._reader.type == BSCTK_KEYWORD: return 0x80000010 ''' 变原创 2012-04-09 08:56:45 · 884 阅读 · 0 评论 -
Python写个Basic解析器(1)代码扫描。
# Copyright (C) 2012 xxx Technology (xx) Co., LTD.# All rights reserved.## Developed by RD BIOS Team.## Authors: perry class BasicReader(BaseReader): def read(self): while self._原创 2012-04-03 12:46:49 · 908 阅读 · 0 评论 -
Python写个Basic解析器(1)词法分析。
''' 定义代码入口点,虚拟机运行时将从它指定的地方开始运行。 ''' print('start:') ''' 定义语句解析函数映射表,不同的语句指定到对应的函数来处理。 ''' self._blocks = { BSCSM_GOTO: self._make_goto, BSCSM_IF:原创 2012-04-03 12:52:06 · 853 阅读 · 0 评论 -
Python写个Basic解析器(1)虚拟机。
Testing...原创 2012-04-03 12:54:17 · 584 阅读 · 0 评论 -
TINYC写个8052虚拟机(2) Intel MCS-805x指令表.
#define iPush(x, o1, o2, o3, c, n) \ {x, o1, o2, o3, c, #n, OPC_##n}const iCode iCodeSet[] = { iPush(1, OP_NONE, OP_NONE, OP_NONE, 12, NOP), iPush(2, OP_CODE11, OP_NONE, OP原创 2013-01-11 21:18:34 · 864 阅读 · 0 评论