标签: code-generation

Codesmith资源

我使用Codesmith创建我们的代码生成模板,并通过查看示例模板和内置文档成功学习如何使用该工具.但是我想知道是否有其他资源(书籍,文章,教程等)可以更好地掌握Codesmith?

code-generation codesmith

4
推荐指数
1
解决办法
1472
查看次数

什么是模型驱动的开发有益?

开罗成名的微软正在开发一个新的建模平台 Oslo .微软服务器和工具业务高级副总裁Bob Muglia表示,建模的好处一直很明显.

从简单实用的角度来看,奥斯陆给用户带来的明显好处是什么?

code-generation mda oslo mdd

4
推荐指数
1
解决办法
1028
查看次数

导出模板haskell生成的定义

我的模块包含定义,其中一部分是导出的(在module子句中).我也想导出Template Haskell生成的声明.但由于似乎没有办法module用TH 修改条款,我不能这样做.

是否可以指定应该导出TH生成的声明?或者也许有其他方法可以做到这一点?

haskell code-generation template-haskell

4
推荐指数
1
解决办法
409
查看次数

在编译期间自动添加未实现的方法

我正在尝试找到如何实现类似于Eclipse功能"添加未实现的方法"的hack.

我不想在编写代码时添加这些方法,而是希望在编译期间执行此操作,使用模板生成方法体.此外,我不想修改原始的.java源文件.

例如,假设我有以下内容:

interface I { void foo(); }
class C implements I { 
  public static void main(String[] args) { new C().foo(); }
}
Run Code Online (Sandbox Code Playgroud)

编译它通常会导致错误,因为I.foo没有实现.

我希望编译成功并随后执行以使用我的模板.模板可以是简单的东西{throw UnsupportedOpeationException()}我希望能够获得有关方法和实现的接口的更多信息并在模板​​中使用它,但这应该不难?

我的第一个想法是尝试注释(AutoImplementMethods)但注释处理器不能修改它正在处理的注释代码.

我有点习惯,AspectJ但我不知道如何使用类型间声明.

任何建议如何做到这一点,没有使用我自己的java解析器和生成代码?

java code-generation aspectj cglib

4
推荐指数
1
解决办法
975
查看次数

编译时ANTLRWorks TestRig卡住了

我最近开始使用ANTLR并发现了ANTLRWorks IDE.虽然编辑器工作正常,但是,当我运行测试装置时,它似乎停留在编译语法文件(或者更确切地说是编译语法没有做什么?),无论我给它什么输入.这是我得到的输出:

ANTLR Codegen

参数:[ - o,C:\ Users \\ AppData\Local\Temp\TestRigTask-1395567588803,-lib,C:\ Users \\ Desktop,-no-listener,-no-visitor,C:\ Users \\ Desktop\Test.g4]

ANTLR Testrig

编译语法文件......

以下是我给它测试问题的输入:

语法

grammar Test;

CUP : 'cup';
MUG : 'mug';
TEA : 'tea';
COFFE: 'coffe';

drinker : 'drinking a' holder 'of' liquid;
holder : MUG | CUP;
liquid : TEA | COFFE;
Run Code Online (Sandbox Code Playgroud)

测试文件

drinking a mug of coffe
Run Code Online (Sandbox Code Playgroud)

我做错了什么/错过了重要的事情吗?

grammar code-generation antlr antlrworks

4
推荐指数
1
解决办法
617
查看次数

在HTML中请求时使用PHP生成JavaScript文件

在HTML程序中请求时,如何使用PHP生成JavaScript文件?我希望这样的PHP程序在请求某个JavaScript文件时在服务器上运行.示例代码:

<?php
    If (requested("file:///C:/server/htdocs/javascriptgenerator.php") {
        javascript-code-to-give-to-client = "function myFunction(){...";
    }
?>
Run Code Online (Sandbox Code Playgroud)

我知道这是非常伪造的代码,但是当我不知道如何做时,这就是我写的方式.我还希望在请求文件的情况下,始终在服务器上运行此文件.我也想知道如何正常发送文件.我也想知道如何根据客户端这样做.

javascript php code-generation request server

4
推荐指数
1
解决办法
5197
查看次数

使用IntelliJ IDEA(Java)在文件末尾插入Getter / Setter

当我使用带有Alt+ Insert->的IntelliJ IDEA生成Getter和Setter时Getter and Setter,它们将插入到光标上方。

有没有办法让IntelliJ在文件末尾插入它们?

java code-generation intellij-idea getter-setter

4
推荐指数
1
解决办法
2289
查看次数

如何在运行时制作Java类的副本?

我上课了

class Foo {
    int increment(int x) {
        return x + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在运行时获取此类的副本,例如类

class Foo$Copy1 {
    int increment(int x) {
        return x + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

其中包含所有相同的方法,但名称不同.

Proxy似乎有助于委派,但不是用他们所有的身体复制方法.

java code-generation bytecode bytecode-manipulation

4
推荐指数
1
解决办法
329
查看次数

我可以跨越DLL边界传递FILE对象吗?

我有一个C++框架,其中一些计算被委托(有时自动生成)C函数或C++函数与外部"C"链接.这些是低级例程,必须以非常快的速度进行评估并且开销最小,并且它们通常驻留在单独的共享对象/ DLL中.他们目前的签名是这样的:

int my_generated_function(const double* input, double* output, double* work);
Run Code Online (Sandbox Code Playgroud)

它将驻留在使用dlopenPOSIX或LoadLibraryWindows 加载的共享库中.使用dlsym(handle, "my_generated_function")POSIX或GetProcAddress(handle, TEXT("my_generated_function"))Windows 提取相应的函数指针.

使用FILE对象指针增强签名是否安全且可移植?

int my_generated_function(const double* input, double* output, double* work,
                          FILE* logfile);
Run Code Online (Sandbox Code Playgroud)

请注意,包含的共享对象my_generated_function可能已使用与加载共享对象的代码不同(但二进制兼容)的编译器进行编译.

c++ dll code-generation stdio

4
推荐指数
1
解决办法
377
查看次数

当我在Visual Studio中生成具有2D数组作为参数的构造函数时,这些星号是什么?

在Visual Studio for Mac中,如果我写了这样的东西:

public class Foo {
    public int[,] Property1 { get; }

}
Run Code Online (Sandbox Code Playgroud)

将光标放在那里的空行,然后按Command + I生成构造函数:

在此输入图像描述

这发生了:

public class Foo {
    public int[,] Property1 { get; }
    public Foo(int[*, *] property1)
    {
        Property1 = property1;
    }
}
Run Code Online (Sandbox Code Playgroud)

生成构造函数,但参数类型的类型是int[*, *],不编译.

在此输入图像描述

我在想这是Visual Studio提示我写一些东西来代替那些星号,或者不是吗?因为单维数组不会发生这种情况,而且我不知道C#中的任何语法允许你把东西[]放在像这样的地方.

对于三维数组,它会生成3个星号:

public Foo(int[*, *, *] property1)
{
    Property1 = property1;
}
Run Code Online (Sandbox Code Playgroud)

是什么导致Visual Studio执行此操作?

我的Visual Studio版本是:Visual Studio for Mac社区7.2.2(版本11).

我试图在Windows版本的Visual Studio - Visual Studio Community 2015上测试这个.但是我找不到一个按钮来执行此操作.根据这个答案,也就是在"快速行动"一生成构造按钮,但我没能找到一个.也许它不在社区版本中?

c# code-generation visual-studio visual-studio-mac

4
推荐指数
1
解决办法
163
查看次数