当前位置:首页 » 操作系统 » yacclinux

yacclinux

发布时间: 2022-07-31 19:52:16

㈠ opensuse linux上面安装mysql的时候出错提示yacc找不到 make[2]: Entering directory `/root/soft/mysql-4.

make[2]: Entering directory `/data0/software/mysql-5.5.3-m3/mysql-...我今天晚上的时候,又安装了一遍,到这个地方又停住了,于是不断的重复两个...

㈡ yacc lex cpp

linux里的info文档有关于bison(yacc的gnu版)的C++接口,yacc的C++接口我没看见,不过你可以直接用yacc与lex生成C代码,然后用宏extern “C”包裹yyparse函数调用就可以在C++中使用了。

㈢ Linux下关于Yacc的问题!

可能是文件最后有空行,或者是文件结束符传给了Yacc,在语法分析时,Yacc把它当作错误输入了。

㈣ linux下有没有什么好的代码统计工具

1 sloccount源代码行数统计工具
--------------------------------------------------------------------------------

sloccount=Count Source Lines Of Code

官网 : http://www.dwheeler.com/sloccount/
1.1 Ubuntu安装
--------------------------------------------------------------------------------
sudo apt-get install sloccount
1.2 使用
--------------------------------------------------------------------------------
sloccount [--version] [--cached] [--append] [ --datadir directory ]
[--follow] [--plicates] [--crossps] [--autogen] [--multiproject]
[--filecount] [--wide] [--details] [ --effort F E ] [ --schele F E ] [
--personcost cost ] [ --overhead overhead ] [ --addlang language ] [
--addlangall ] [--] directories
--cached
跳过计算过程,直接使用上次结果

参数
描述

–multiproject
如果该文件夹包括一系列的子文件夹,而它们中的每一个都是相对独立开发的不同的项目,那么使用”–multiproject”选项,评估将会正确的考虑到这一点

–filecount
显示文件数目而非代码行数

–details
显示每个源文件的详细信息

–plicates
算上所有重复的(默认情况下如果文件有相同的内容,则只算一个)

–crossps
如果顶目录包含几个不同的项目,并且你想把不同的项目下重复的文件在每个项目中都算上一次,则使用该选项

1.3 转换成html文件
--------------------------------------------------------------------------------
有一个sloc2html.py可以把生成的结果转换为带图形统计结果的html文件. 缺点是对中文支持不好
例如:
sloccount --wide --multiproject SourceDirectory > result.txt
sloc2html.py result.txt > result.html
再打开result.html即可看到结果形如:

下载地址 http://www.dwheeler.com/sloccount/sloc2html.py.txt
输出样例 http://www.dwheeler.com/sloccount/sloc2html-example.html

wget http://www.dwheeler.com/sloccount/sloc2html.py.txt -O sloc2html.py
sloc2html.py文件源代码如下
#!/usr/bin/env python
# Written by Rasmus Toftdahl Olesen <[email protected]>
# Modified slightly by David A. Wheeler
# Released under the GNU General Public License v. 2 or higher
from string import *
import sys
NAME = "sloc2html"
VERSION = "0.0.2"
if len(sys.argv) != 2:
print "Usage:"
print "\t" + sys.argv[0] + " <sloc output file>"
print "\nThe output of sloccount should be with --wide and --multiproject formatting"
sys.exit()
colors = { "python" : "blue",
"ansic" : "yellow",
"perl" : "purple",
"cpp" : "green",
"sh" : "red",
"yacc" : "brown",
"lex" : "silver"
# Feel free to make more specific colors.
"ruby" : "maroon",
"cs" : "gray",
"java" : "navy",
"ada" : "olive",
"lisp" : "fuchsia",
"objc" : "purple",
"fortran" : "purple",
"cobol" : "purple",
"pascal" : "purple",
"asm" : "purple",
"csh" : "purple",
"tcl" : "purple",
"exp" : "purple",
"awk" : "purple",
"sed" : "purple",
"makefile" : "purple",
"sql" : "purple",
"php" : "purple",
"mola3" : "purple",
"ml" : "purple",
"haskell" : "purple"
}

print "<html>"
print "<head>"
print "<title>Counted Source Lines of Code (SLOC)</title>"
print "</head>"
print "<body>"
print "<h1>Counted Source Lines of Code</h1>"
file = open ( sys.argv[1], "r" )
print "<h2>Projects</h2>"
line = ""
while line != "SLOC\tDirectory\tSLOC-by-Language (Sorted)\n":
line = file.readline()
print "<table>"
print "<tr><th>Lines</th><th>Project</th><th>Language distribution</th></tr>"
line = file.readline()
while line != "\n":
num, project, langs = split ( line )
print "<tr><td>" + num + "</td><td>" + project + "</td><td>"
print "<table width=\"500\"><tr>"
for lang in split ( langs, "," ):
l, n = split ( lang, "=" )
print "<td bgcolor=\"" + colors[l] + "\" width=\"" + str( float(n) / float(num) * 500 ) + "\">" + l + "=" + n + " (" + str(int(float(n) / float(num) * 100)) + "%)</td>"
print "</tr></table>"
print "</td></tr>"
line = file.readline()
print "</table>"
print "<h2>Languages</h2>"
while line != "Totals grouped by language (dominant language first):\n":
line = file.readline()
print "<table>"
print "<tr><th>Language</th><th>Lines</th></tr>"
line = file.readline()
while line != "\n":
lang, lines, per = split ( line )
lang = lang[:-1]
print "<tr><td bgcolor=\"" + colors[lang] + "\">" + lang + "</td><td>" + lines + " " + per + "</td></tr>"
line = file.readline()
print "</table>"
print "<h2>Totals</h2>"
while line == "\n":
line = file.readline()
print "<table>"
print "<tr><td>Total Physical Lines of Code (SLOC):</td><td>" + strip(split(line,"=")[1]) + "</td></tr>"
line = file.readline()
print "<tr><td>Estimated development effort:</td><td>" + strip(split(line,"=")[1]) + " person-years (person-months)</td></tr>"
line = file.readline()
line = file.readline()
print "<tr><td>Schele estimate:</td><td>" + strip(split(line,"=")[1]) + " years (months)</td></tr>"
line = file.readline()
line = file.readline()
print "<tr><td>Total estimated cost to develop:</td><td>" + strip(split(line,"=")[1]) + "</td></tr>"
print "</table>"
file.close()
print "Please credit this data as \"generated using 'SLOCCount' by David A. Wheeler.\"\n"
print "</body>"
print "</html>"

㈤ linux 下怎样安装使用 Yacc 和 Lex

yacc/lex在linux下的使用指南

链接:http://blog.csdn.net/ruglcc/article/details/7817619

Lex 和 Yacc 是 Unix 和Linux 下词法和语法的分析,解析工具,有了这两个工具,你可以自己制作想要的编译器,也可以重新制作已有程序语言的解析器。需要注意的是linux下的这两个工具生成的程序源码只能是C和C++语言,当然现在早已有类似可以生成Java源码的语法分析器,如较常用的JavaCC(Java Compiler Compiler),相关内容可以去网上搜索。Lex和Yacc已被移植到windows下,现在常用的工具有Parser Generator。本文只介绍Linux 下Lex和Yacc的使用方法。

Lex介绍

Lex 通过对.lex或.l文件定义的格式生成一个C语言源码文件,通过编译这个源码,就生成了.lex文件或.l文件定义的编译器。.lex或.l文件的格式分三段:

1.全局变量声明部分
2.词法规则部分
3.函数定义部分

以下是一个简单的例子:lex_example.l文件

%{ //全局声明部分
/*林木100 linux
www.linmu100.com
*/
#include <stdio.h>

extern char *yytext;
extern FILE *yyin;
int sem_count = 0;

%}

//规则定义部分,
%%
[a-zA-Z][a-zA-Z0-9]* {printf("WORD[%s] ", yytext);}
[a-zA-Z0-9\/.-]+ printf("FILENAME ");
\" printf("QUOTE ");
\{ printf("OBRACE ");
\} printf("EBRACE ");
; {sem_count++; printf("SEMICOLON ");}
\n printf("\n");
[ \t]+ /* ignore whitespace */;
%%

//以下为函数定义部分
int main(int avgs, char *avgr[])
{
yyin = fopen(avgr[1], "r");
if (!yyin)
{
return 0;
}
yylex();
printf("sem_count : %d\n", sem_count);
fclose(yyin);

return 1;
}

㈥ linux ./configure

安装 yacc

yacc(Yet Another Compiler Compiler),是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。

㈦ linux 下怎样安装使用 yacc 和 lex

wilful boy of her own girlhood, the child

㈧ linux bison 包干什么用的

这个包是Linux的基础包之一,它包括 bison 和 yacc 这两个程序,用于GNU编译工具包的语法生成,以一系列规则, 分析文本文件结构,这个库通常没有什么用处,但是POSIX 需要它。

㈨ 中科创达 linux 面试怎么样

本文将带来11个Linux基础面试问题,希望对即将换工作或者正在找相关工作的朋友们一些帮助。

Q.1: Linux 操作系统的核心是什么?

Shell
Kernel
Command
Script
Terminal
答: 内核(Kernel)是Linux 操作系统的核心。Shell是一个命令行解释器,命令(Command)是针对计算机的指令,脚本(Script)是存储在文件中的命令的集合,终端(Termial)是命令行接口。

Q.2: Linus Torvalds 都创建过什么东东?

Fedora
Slackware
Debian
Gentoo
Linux
答: Linux Torvalds 创建了Linux,Linux是所有上述操作系统的核心,同样也是其他一些Linux 操作系统的核心。

Q.3: Torvalds,使用C++语言编写了Linux内核的大部分代码,是这样吗?

答: 不! Linux内核包含了12,020,528行代码,其中注释占去了2,151,595 行。因此剩下的9,868,933 行就是纯代码了。而其中7,896,318行都是用C语言写的。

剩下的1,972,615行则是使用C++,汇编,Perl, Shell Script, Python, Bash Script, HTML, awk, yacc, lex, sed等。

注:代码行数每天都在变动,平均每天超过3,509行代码添加到内核。

Q.4: 起初,Linux 是为 Intel X86 架构编写的,但是后来比其他操作系统移植的硬件平台都多,是这样吗 ?

答: 是的,我同意。Linux那时候是为x86机器写的,而且现已移至到所有类型的平台。今天超过90%的超级计算机都在使用Linux。Linux在移动手机和平板电脑领域前景广阔。事实上我们被Linux包围着,远程遥控,太空科学,研究,Web,桌面计算等等,举之不尽。

Q.5: 编辑 Linux 内核合法吗?

答: 是的,内核基于GPL发布,任何人都可以基于GPL允许的权限随意编辑内核。Linux内核属于免费开源软件(FOSS)。

Q.6: UNIX和Linux操作系统,本质上的不同在哪里?

答: Linux操作系统属于免费开源软件,内核是由 Linus Torvalds 和开源社区共同开发的。当然我们不能说UNIX操作系统和免费开源软件(FOSS)无关,BSD 就是基于 FOSS 范畴的 UNIX 的变种。而且大公司如 Apple,IBM,Oracle,HP等,都在为UNIX内核贡献代码。

Q. 7: 挑出来一个与众不同的来.

HP-UX
AIX
OSX
Slackware
Solaris
答 : Slackware。 HP-UX, AIX, OSX, Solaris 分别是由 HP, IBM, APPLE, Oracle 开发的,并且都是UNIX的变种. Slackware 则是一个Linux操作系统.

Q.8: Linux 不会感染病毒吗?

答 : 当然会! 这个地球上不存在不会感染病毒的操作系统。但是Linux以迄今为止病毒数量少而着称,是的,甚至比UNIX还要少。Linux榜上有名的病毒只有60-100个,而且没有一个病毒在传播蔓延。Unix粗略估计有85-120个。

Q.9: Linux 属于哪种类型的操作系统?

多用户
多任务
多线程
以上所有
以上都不是
答 : 以上所有。Linux是一个支持多用户,可以同时运行多个进程执行多个任务的操作系统。

Q.10: 一般的 Linux 命令的语法格式是:

command [选项] [参数]
command 选项 [参数]
command [选项] [参数]
command 选项 参数
答 : Linux 命令的正确语法是, Command [选项] [参数]。

Q.11: 挑出来一个与众不同的来。

Vi
vim
cd
nano
答 : cd 与其他命令不同。Vi,vim和 nano都是编辑器,用于编辑文档,而cd是用于切换目录的命令。

就这么多了。上述问题你学到手几个?效果如何?我们期待着你的评论。下周,会有新的问题,让我们拭目以待。保持健康,锁定链接,记得来Tecmint哦。

热点内容
蒙皮算法 发布:2025-01-18 12:57:53 浏览:549
常用的r语言编译器 发布:2025-01-18 12:55:05 浏览:199
同人志解压密码 发布:2025-01-18 12:55:05 浏览:876
qq密码不记得怎么办 发布:2025-01-18 12:48:22 浏览:448
安卓系统停用怎么办 发布:2025-01-18 12:35:49 浏览:260
五菱宏光星辰哪个配置最值得买 发布:2025-01-18 12:29:43 浏览:595
鸿蒙系统为什么完美兼容安卓应用 发布:2025-01-18 12:16:02 浏览:856
数分转算法 发布:2025-01-18 12:08:31 浏览:612
iphone硬件为什么比安卓更好 发布:2025-01-18 12:08:29 浏览:822
医院冷热源配置有哪些 发布:2025-01-18 12:08:26 浏览:167