hongweipeng 发布的文章

开发编程语言(六):语法分析


起步

初步的可运行的已经在github上了:https://github.com/OriginUnion/origin,发现有bug可以留言,供学习而已,千万别用在项目上,应该也没人这么做吧。

什么是语法分析

上篇的词法分析已经把文本解析为一个个单词。上一步的输出就是这步的输入,语法分析就是定义语句的格式。诸如像if语句的定义:

if_statement
        : IF LP expression RP block
        | IF LP expression RP block ELSE block
        | IF LP expression RP block elseif_list
        | IF LP expression RP block elseif_list ELSE block

这就定义了if的形式为if(表达式){}或者if(表达式){}else{}等格式。blok的定义在其他地方。


[转]Shell常用招式大全


原文地址:https://github.com/DeepinW/share_docs

本教程分为入门篇,命令篇和实战篇,结合平时工作中使用Shell的经验编写。以实例为主,侧重于应用,总结了一些实用的技巧。

以下为本教程的《入门篇》,适于初学者快速入门以及老手查缺补漏。

[TOC]

第一招 HelloWorld

第一式:echo

echo "Hello World"
echo -n "Hello World"    # 不带换行
echo -e '\e[0;33;1mHello\e[0m World'   # 带颜色的玩法
echo -e '\e[0;33;4mHello\e[0m World'   # 带颜色+下划线
echo -e '\e[0;33;5mHello\e[0m World'   # 带颜色+闪烁

格式为 \e[背景色;前景色;高亮格式m,请阅读详细文档后使用正确的姿势进行装逼。


django 数据库sqlmigrate


起步

django版本是1.8. 项目也运行上线一段时间了。由于需求的增加不能不增加些表格了。在model.py写上要添加的表格.

class MoyuRegion(models.Model):
    game_region_name = models.CharField(max_length=255, null=True, blank=True, unique=True)
    idc = models.ForeignKey(IDC, null=True, blank=True, on_delete=models.SET_NULL)
    child_game = models.ForeignKey(ChildGame, null=True, blank=True, on_delete=models.SET_NULL)
    def __unicode__(self):
        return self.game_region_name


Python四舍五入round精度缺失问题


说了你可能不信,是内置函数的锅。

起步

round()是python进行四舍五入的函数,然而这里有坑。在我不断排查,万万没想到是内置函数也有错误,在此记个坑。

20160902175619.png

这是在python2.6的环境下,保留小数位数都是错的,一个bug。于是好奇在不同版本下round是怎么工作的