metaprogramming

    11热度

    2回答

    我们需要生成Java源代码。我们通过对抽象语法树进行建模并使用树沃克生成实际的源代码文本来实现此目的。这一切都很好。 由于我的AST代码有点旧,它不支持注释和泛型。所以我正在寻找开放项目,以用于将来需要代码生成的项目。这就是实际问题出现的地方。我们想要测试生成的代码是否具有正确的行为。 这里是我得到的想法,实际上评估AST而不是生成Java源代码,编译它,并针对该代码运行测试。评估者会加速单元测试

    8热度

    5回答

    如何将obj转换回名为obj的变量在def中? def foo(bar) bar.some_method_call end foo :obj UPDATE: 最后的代码比这更复杂,但... 我希望能够说 foo :obj ,而不是 foo obj 我正在研究一些类似DSL的语法。而这一改变会让事情更清楚一点。

    2热度

    6回答

    我有一个C文件,我们在其中移动日志记录基础结构。所以 if (logging_level >= LEVEL_FINE) printf("Value at %p is %d\n", p, i); 成为 do_log2(LEVEL_FINE, "Value at %p is %d\n", _ptr(p), _num(i)); do_log2意味着数以2个参数。 所以我需要一个C解析和

    1热度

    4回答

    在Ruby和Python中看到元编程的优点,但在实际工作中绑定到低级语言(如C++和)时,我想到了将两者。一个实例出现在排序任意结构/类的列表的简单问题中。例如: struct s{ int a; int b; }; vector<s> vec; for(int x=0;x<10;x++){ s inst; inst.a = x; inst

    1热度

    2回答

    给出: module A class B end end b = A::B.new ,我们希望能够得到模块嵌套数组。如果班级事先知道,可以这样做。例如: module A class B def get_nesting Module.nesting # => [A::B, A] end end end 但是,如

    4热度

    8回答

    核心问题的实例: 我希望能够采取一个模板类的一个实例,说: template<class a, class b, class c> class foo; foo<int, float, double>; ,然后做一些事情,如: foo<int, float, double>::value; //Evaluates to a unique number foo<long, float, d

    1热度

    4回答

    Groovys' NodeBuilder开发使用 def someBuilder = new NodeBuilder() someBuilder.people(kind:'folks', groovy:true) { person(x:123, name:'James', cheese:'edam') { project(name:'groovy') projec

    2热度

    3回答

    从一个previous文章中取得一些修改以回应sepp2k对命名空间的评论,我实现了String#to_class方法。我在这里分享代码,我确信它可能会被重构,特别是“i”计数器。感谢您的意见。 class String def to_class chain = self.split "::" i=0 res = chain.inject(Module) d

    8热度

    2回答

    我遇到了Groovy元编程问题,我无法解决。 当添加静态方法foo()的类FooBar的,然后FooBar.foo()按预期工作: ​​ 不过,我不是同一个静态方法foo()添加到类对象,则FooBar.foo()失败,并显示MissingMethodException: Object.metaClass.static.foo = { println "hello" } FooBar

    13热度

    4回答

    Java有批注,这很好。但是,一些开发人员认为最好用使用xml文件的元数据注释代码 - 其他人更喜欢注释,但会使用元数据来覆盖源代码中的注释。 我在写一个使用注释的Java框架。问题是:是否有一种标准的方式来定义和解析xml文件中的元数据。我认为这是每个使用注释的框架都可以从中受益,但我似乎可以在互联网上找到类似的东西。 我必须滚动我自己的XML解析/验证或有人已经做过这样的事情?