警告由vala生成的c代码生成.
警告:初始化程序周围缺少大括号
代码有效但警告很烦人.警告引用的vala代码是
struct Position {uint x; uint y;}
private static Position positions[8];
Run Code Online (Sandbox Code Playgroud)
生成的C代码是
static Position det_positions[8] = {0};
Run Code Online (Sandbox Code Playgroud)
我已经尝试了六种不同方式初始化位置,但似乎无法获得满足警告的语法.这是GCC的错误53119还是有办法解决它?
当我在GTK中创建一个自定义对话框(GTK2或GTK3)并将其设置为模态时,我的应用程序的其他窗口的所有输入都将被忽略.这几乎总是有效,但在某些条件下会失败.
当我将包含TreeView的ScrolledWindow添加到我的对话框时,它仍然可以正常工作.但是,如果我用条目填充TreeView,直到ScrolledWindow开始显示其滚动条 - 模态突然丢失,我可以点击我的其他窗口!
这是我能够设置的最基本的例子.它是用Vala编写的,但你会明白这个想法:
class MyDialog: Gtk.Dialog {
public MyDialog() {
this.modal = true;
var data = new Gtk.ListStore(1, typeof(string));
// increase this number -- the dialog is not modal anymore!
for (int i=0; i<2; ++i) {
Gtk.TreeIter current;
data.append(out current);
data.set(current, 0, "Lorem Ipsum");
}
var render = new Gtk.CellRendererText();
var column = new Gtk.TreeViewColumn();
column.pack_start(render, true);
column.add_attribute(render, "text", 0);
var treeview = new Gtk.TreeView.with_model(data);
treeview.append_column(column);
treeview.show();
var scroll = new Gtk.ScrolledWindow(null, null);
scroll.set_size_request(100, …Run Code Online (Sandbox Code Playgroud) 我是一名C#开发人员,偶然发现了一种名为vala的新的Linux编程语言.它与C#的语法几乎完全相同,非常棒.我从来都不是Mono的忠实粉丝.这允许程序员用C#风格的语言编写GTK +应用程序.我的问题是:vala是否编译成C?
根据Vala文档:"在0.3.1之前,Vala的解析器是经典的flex扫描器和Bison LALR解析器组合.但是从提交eba85a开始,解析器是一个手工制作的递归下降解析器." 我的问题是:为什么?
问题可以解决任何不使用解析器生成器的编译器.从解析器生成器到手工解析器的这种转变的优缺点是什么?将解析器生成器(Bison,ANTLR)用于编译器有什么缺点?
作为旁注:我对Vala特别感兴趣,因为我喜欢使用具有现代功能和清晰语法的语言,但可编译为"本机"和"非托管"高级语言(在Vala的情况下为C).到目前为止我只发现了Vala.我想通过使Vala(或类似语言)可编译为C++(由Qt libs支持)来获得乐趣.但是因为我不想发明全新的语言,所以我想考虑一些现有的语法.显然,手工制作的解析器没有我可能重用的书面形式语法.你对这个想法的评论是受欢迎的(整个想法是愚蠢的吗?).
Vala是一种编程语言,C#语法相同,valac编译vala程序到C源代码,是否可以在windows os上运行我的vala程序?
我是Vala的新手.我不熟悉GObject.据我了解,GObject是从GNOME的GLib项目中分离出来的.如我错了请纠正我.
我非常喜欢Vala的语法和实现,但我并不打算为GNOME编写桌面应用程序.
我也知道(我想知道)Vala没有GObject本身以外的标准库.
所以我的问题是:Vala可以在没有GObject的情况下使用吗?如果可以的话,它是否可用(是否有最佳和维护的基础库,用于常见的事情,如类型转换,数学,字符串操作,缓冲等等......可用)?
我正在使用OpenGL 为ooc语言(一种编译为c的新语言)编写iphone游戏.它真的很顺利,ooc是我真正喜欢的语言.现在我刚刚发现了Vala,我不太清楚它依赖于GLib和GObject意味着什么.我在另一个问题中读到Vala依赖于GTK,但我不认为这样做.
问题是:我正在用ooc做什么,我可以用Vala做同样的事情吗?我可以在vala中为iPhone编写一个OpenGL游戏吗?并且可以使用来自c的vala代码吗?
谢谢.