发新话题
打印

linux下用C编写C语言编辑器

linux下用C编写C语言编辑器

遇到问题:1.用快捷键打开菜单中的file 若ALT+F 如何实现?0 ^3 m& u0 S2 a, d/ a5 C3 ~
ncurses库中是否只有单键的定义?
( c( B, G' D0 @( J+ v& h8 L1 N5 C# `7 ~2.用正则表达式实现语法高亮,有否相关小例子?:cool:      

TOP

用过VIM吗?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

就是用vi编一个类似vi的编辑器....      

TOP

可以看看vi的源代码      

TOP

用c来编写c的编译器?那如何转为汇编语言或二进制码呢。# F- @' _% n+ {+ ~' a; V7 x- C
偶没有学过编译原理,只是感觉上有点奇怪。      

TOP

[QUOTE=海天一色]用c来编写c的编译器?那如何转为汇编语言或二进制码呢。) h- i8 U% Q0 D( ]3 N5 Z3 C* K
偶没有学过编译原理,只是感觉上有点奇怪。[/QUOTE]
) W  f& t; m4 u, a; o- y) q% l( F
: x8 u  a( i8 t7 m) {( B是编辑器! u3 V9 j7 b/ _/ F
:p      

TOP

词法分析(flex++)-语法分析(bison++,语法树,一般是采用自下而上的语法树)-语义分析(静态语义检查,类型检查)-中间代码生成(主要是对 抽象语法树的翻译, 说明语句\控制语言\赋值语句的翻译)-中间代码优化-目标代码生成(汇编指令)-目标代码优化. w2 f, q8 b0 z2 z

1 C- L! |' f2 @) \9 r7 {0 t还有在此过程中,会用到符号表(symbol_table),和出错处理(warning, errors,)7 C& n( P9 E! s% D

; s# X0 S$ T* A; E7 J. _Java的编译器(javac.exe) 和C编译器不一样+ c. E# h9 Z$ v; u# R3 o: o
建立批解析环境-词法分析+语法分析(JavaCC)-语义分析-翻译(主要是类中的方法)-字节码文件生成1 M- _% h$ c3 i, i5 f
出错处理(env.err(para1,....))+常量池(Constant_Pool)9 `7 w/ M/ ?, \# Y/ a9 W! ^
格式:
" ]( g3 B7 @4 O5 F$ ]typedef unsigned char u1;
% ~! ], [# [: K$ @+ ytypedef unsigned short u2;  S6 ^$ q( M! w4 b, Z0 D
typedef unsigned int u4;
! J. ]# H9 b* ^' q9 p& c# \0 [typedef unsigned __int64 u8;8 b& W- }9 S( V
typdef struct _ClassFile{
5 X. p/ b1 r2 l+ j6 Lu4 java_magic;
# x: p  x$ O; Uu2 minor_version;7 k& E% R0 z. T# a# y- d
u2 major_version;
7 @! ^+ b7 [3 `  _, P- P) Z+ Gu2 constantPool_count;+ ~$ ^% `2 ], ^: {/ [
constantPool_info constatPool[constantPool_count-1];
! k! G* k4 h' p& n" C' Lu2 access_flags;3 W" o& _$ r* S, R" C
u2 this_class;4 K" b* J: e4 V7 u6 e  n6 u4 f
u2 super_class;
+ I. h1 f0 f% j+ k/ v5 Uu2 interfaces_count;& D. `9 F9 X1 K, d& c
u2 interferfaces;
/ P0 W1 q7 v8 s$ @u2 field_count, {9 D" p. J7 v6 J
field_info field[fields_count];/ `5 z- ^9 u- c$ B: R  j9 ?3 U+ W% n
u2 method_count;
# n" a! P% V' V! n5 Cmethods_info method[methods_count];% }) C1 V' i2 F4 _# ]( \) `
u2 attribute_count;' J$ k0 ^1 {2 e( W
attribute_info attribute[attribute_count];
' \+ d0 e$ A1 x- W% ?# P2 W# D3 R}ClassFile;      

TOP

崇拜部分回帖不看贴的人,五体投地.      
-----------------------------------------
http://www.darkspy.org/blog

TOP

发新话题