分类 Linux 下的文章

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


起步

初步的可运行的已经在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,请阅读详细文档后使用正确的姿势进行装逼。


linux修改主机名hostname


不为什么,就是要看着舒服。

起步

程序员看到不符合的东西就会想办法改善它,比如这个主机名

285637472772175705.jpg

通过# hostname newname命令指示临时修改主机名,重启后就无效了。


centos安装lnmp


这种部署文真没意思- -

起步

最后还是买了海外服务器,一个月才10块,比国内某云好太多了,配置除了硬盘比较小外,内存反正可以手动弄swap分区倒不是很大问题。用ubuntu系统对配置要求较高,后面还是换回centos6,还是这个系统比较适合服务器。

lnmp安装

nginx

刚登陆服务器第一件事就是更新下软件源:yum update;而后yum install nginx竟然没有这个包:

Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos-distro.1gservers.com
 * extras: centos.sonn.com
 * updates: mirrors.evowise.com
No package nginx available.

Excuse me? 什么情况。


lex快速入门


起步

lex是用C语言开发的词法分析自动生成工具,它接受正规表示的词法描述,生成识别输入语言词法的词法分析器。

lex所规定的格式说明文件(一般以.l为扩展名)经过处理后,输出该词法分析程序lex.yy.c

该程序含有一个词法分析总控程序yylex(),但通常不含主函数main(),用户要自己编写main()和调用yylex()进行此法识别的主函数