易码技术论坛

 找回密码
 加入易码
搜索
楼主: gameghost

[工具] [原创][PC端的LavaX和GVM2增强编译器IDE][07/12/20]

[复制链接]
发表于 2007-8-13 10:54:16 | 显示全部楼层
哦哦哦哦
这么好的东西
收藏了
发表于 2007-8-13 12:13:18 | 显示全部楼层
下载一次。。我就要评一次。
吼吼
发表于 2007-8-13 14:11:48 | 显示全部楼层
这次终于有行号和折叠了?
渐渐媲美UE的编辑功能了。
不错,每次更新都要顶一次。
 楼主| 发表于 2007-8-13 17:39:19 | 显示全部楼层
...............
自己汗一下,gvm2sysfun.h里的sprintf的定义被我误写成strintf了,发现未定义的提示的情况请大家自己改下吧,这网吧什么都干不了
发表于 2007-8-13 23:51:32 | 显示全部楼层
还有那个头文件倒是要从给的文件夹里拿到程序目录下才能用……
能不能做个用<>包含“include”目录下的头文件,用“”包含待编译文件目录下的头文件呢?
这样更接近C。不过LavaX的系统函数都一个头文件下来了,倒也不是非常有必要。
发表于 2007-8-14 11:09:18 | 显示全部楼层
编辑区不支持Ctrl+A全选?没有右键菜单?呃……不是我吹毛求疵,应该是文本编辑器都应该具备的功能啊,不知道在这里添加这些功能是否有额外的困难?
 楼主| 发表于 2007-8-14 14:58:04 | 显示全部楼层
这个要慢慢加了,因为这个IDE除了框架使用的MFC其他所有的功能全部都是手工代码实现的,包括代码编辑器,实现一个正常的文本编辑的功能其实需要大量的代码来完成,到现在,这些细小功能还没有加,我想等整个框架基本完成后再慢慢补全.
发表于 2007-8-14 15:06:59 | 显示全部楼层
支持一下
发表于 2007-8-14 16:59:10 | 显示全部楼层
向楼主致敬。
我一直以来都想学VC编程的,一本Windows程序设计看了一年了也没看过第二章(汗……),想高中时用控件堆出一个VB程序来就沾沾自喜以为会编程了,真是浅薄啊。

PS:看到前面某楼说能用UE调用编译器来着,回去摸索了一下午也没整明白,应该是早期版本的命令行版的编译器吧。不知道现在那个CPP.exe是什么东西?能手动调用吗?
 楼主| 发表于 2007-8-14 17:31:51 | 显示全部楼层
cpp.exe是TC的预处理程序,正因为这个,所以编译器能使用标准的C语言的宏指令.
指令使用方法 cpp.exe -i "inputfile" -o "outputfile"
调用后就展开了所有的宏.
发表于 2007-8-14 18:31:55 | 显示全部楼层
强人
发表于 2007-8-15 13:31:43 | 显示全部楼层
支持gameghost!!!!!!!!!!!
┌┬┐─┬┐
 │┌─┴╮
 ││ ││
 ││ ││
┌│╰ │┘
╰╯└─╯┘
·
 楼主| 发表于 2007-8-15 17:21:07 | 显示全部楼层
加了本地include了(#include <>).
""包含的文件不存在也会使用编译器本地存在的文件.
发表于 2007-8-15 17:47:15 | 显示全部楼层
哈果真!这下可以通过<>和“”区分系统函数头文件和自建头文件了。
发表于 2007-8-15 19:01:50 | 显示全部楼层
厉害
 楼主| 发表于 2007-4-1 16:36:31 | 显示全部楼层 |阅读模式
这个编译器的的定位是LavaX和Gvm2,现在才初具规模,已经完全支持LavaX和GVM2的编译.

LavaX和GVM2的内置函数定义交给外部文件完成,增加了灵活性,具体的使用方法请看说明.

对于LavaX的后续扩展函数,可以自行修改定义文件.

在输出窗口中,在有提示 "错误" 和 "警告" 的行上双击鼠标可以直接打开对应文件并选中对应行.
6.17:加了行号显示(以前忘了)
6.18:修正了文件夹判断错误.
6.19:修正路径问题,lvm.exe,cpp.exe,GLGC.exe要放在同一目录(编译gvm2就需要gvmakerstar来运行).
7.4:依然在完善中,同时解决已知的错误.增加了多行同时缩进的功能,编辑基本功能已经差不多了.

7.26:完全重写了编辑器的代码,可以更改字体和语法加亮的信息.
7.31:更改了编辑器的主要代码,暂时屏蔽了撤销和重做,修正了编译代码,支持了gvm2.
8.10:增加了文件信息列表显示. 增加了代码折叠功能.

8.13:列表处理函数宏的时候有个错误修正了.
8.15:#include 指令可以使用<>
被包含文件名被<>包含表示将从和GLGC.exe同文件夹下的include文件夹中引入文件

同时,使用""包含的文件优先在被编译文件所在位置查找.
若文件不存在,则转向和GLGC.exe同文件夹下的include文件夹中查找.

12.10:修正错误,支持多级指针,还有指针的另一种用法:
int val[10];
int *a; a[1] = 10;
int **b = &a; (*b)[1] = 10;
int *c[2]; c[1] = val; c[1][1] = 10;

声明一点,宏处理完全支持C的原始指令格式.
还是说明一下编译器的特点吧:

1.基本强制类型,支持指针和引用.
*引用是对一个变量的完全的引用,不同于原来LavaX的定义,同时函数的引用传参时直接使用变量,而不需要取地址.
2.加强结构声明,声明结构变量可以直接使用结构名+变量名.
3.全局变量可以在函数外的任何地方声明并初始化.
4.局部变量可以在函数内的任何地方声明并初始化,但是暂不支持数组的初始化.


其他:
1.无返回值的函数可以不在末尾加';'
2.'}'前的语句可以省略';'


以下是程序文件

文件大小 300K
文件类型 RAR
运行平台 PC
程序作者 gameghost


K3->Gameghost 献上~

[ 本帖最后由 gameghost 于 2008-4-13 16:46 编辑 ]

评分

参与人数 1小红花 +5 收起 理由
wcxbo + 5

查看全部评分

发表于 2007-12-2 01:36:32 | 显示全部楼层
最近尝试用了一下,很不错,但碰到两个小问题:
1.下面这段代码编译通过,但运行结果不正确:
  1. #include "LavaXSysFun.h"
  2. struct noname
  3. {
  4.         char* cptr;
  5. };
  6. void f(noname* n,char* a)
  7. {
  8.         n->cptr=a;
  9.         printf("%d\n",n->cptr);
  10.         getchar();
  11. }
  12. void main()
  13. {
  14.         char a[10];
  15.         noname n;
  16.         f(&n,a);
  17. }
复制代码
2.好像不能对结构按引用传参,如果不是这样,能否写一个结构引用传参的例子?
 楼主| 发表于 2007-12-2 11:51:02 | 显示全部楼层
代码是对的,因为没人用,所以我老久就不更新了,论坛上这个有点错误,就不要用了.
 楼主| 发表于 2007-12-2 15:25:06 | 显示全部楼层
我把现在的传上来了,
引用的语法是模仿C++的:
void fun(type &var);

void main()
{
    type a;
    fun(a);//变量的引用是不需要取地址的
}
发表于 2007-12-2 16:32:47 | 显示全部楼层
支持,不过我要高考了。现在不用了。等高考玩永不用WXQ还是一回事呢。不过还是支持啊
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-27 12:02 , Processed in 0.012421 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表