小编Sar*_*els的帖子

在Treetop语法中匹配标签对

我不想重复Cthulhu的答案,但我希望使用Treetop匹配开启和关闭HTML标签的对.使用这个语法,我可以匹配开始标记和结束标记,但现在我想要一个规则将它们绑在一起.我已尝试过以下内容,但使用此方法会使我的解析器永远继续(无限循环):

rule html_tag_pair
  html_open_tag (!html_close_tag (html_tag_pair / '' / text / newline /
    whitespace))+ html_close_tag <HTMLTagPair>
end
Run Code Online (Sandbox Code Playgroud)

我试图将此基于递归括号示例和Treetop Github页面上的否定前瞻示例.我引用的其他规则如下:

rule newline
  [\n\r] {
    def content
      :newline
    end
  }
end

rule tab
  "\t" {
    def content
      :tab
    end
  }
end

rule whitespace
  (newline / tab / [\s]) {
    def content
      :whitespace
    end
  }
end

rule text
  [^<]+ {
    def content
      [:text, text_value]
    end
  }
end

rule html_open_tag
  "<" html_tag_name attribute_list ">" <HTMLOpenTag>
end

rule html_empty_tag …
Run Code Online (Sandbox Code Playgroud)

ruby regex grammar parsing treetop

2
推荐指数
1
解决办法
729
查看次数

Java - 将带有注释的类传递给泛型方法

我正在使用JPA 2并具有以下方法:

private static void wipeTable(EntityManager em, Class<? extends Table> klass) {
    String tableName = klass.getAnnotation(Table.class).name();
    ...
}
Run Code Online (Sandbox Code Playgroud)

我认为Class<? extends Table>参数存在问题.我有一个像这样的实体类:

@Entity
@Table(name = "collections")
public class Collection extends MyOtherClass implements Serializable { ... }
Run Code Online (Sandbox Code Playgroud)

我可以做得Collection.class.getAnnotation(Table.class).name()很好,所以我希望能够Collection作为参数传递.只是调用wipeTable(em, Collection.class);有以下错误:

FetchData类型中的方法wipeTable(EntityManager,Class <?extends Table>)不适用于参数(EntityManager,Class <Collection>)

我试过让参数为be Class klass,没有泛型:

private static void wipeTable(EntityManager em, Class klass) {
    String tableName = ((Table)klass.getAnnotation(Table.class)).name();
Run Code Online (Sandbox Code Playgroud)

这导致我的IDE建议:

类是原始类型.应参数化对泛型类的引用

我正在使用Java 1.5.有没有办法说"给我一个Class注释类型的参数@Table"?

java generics annotations raw-types java-5

2
推荐指数
1
解决办法
6401
查看次数

OpenJPA 1 - 未创建序列表

我有一个实体类,其主键上有以下注释: @GeneratedValue(strategy = GenerationType.AUTO).但是,当我尝试persist这个类的实例时,我得到了

com.microsoft.sqlserver.jdbc.SQLServerException:无效的对象名称'OPENJPA_SEQUENCE_TABLE'.在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)

它正在寻找的表肯定不存在于数据库中.连接到数据库的用户可以创建表.它应该自动创建OPENJPA_SEQUENCE_TABLE,还是我必须这样做?如果是这样,它所期望的表架构是什么?我正在使用openjpa-1.2.2.jar.

编辑:我查看了main()JavaDoc,因为它有一个在命令行上添加序列表的选项,但org.apache.openjpa.jdbc.schema.TableJDBCSequence在openjpa-1.2.2.jar中不存在. org.apache.openjpa.jdbc.schema是的,但TableJDBCSequence不在其中.

java sql-server jpa openjpa sql-server-2008-r2

2
推荐指数
1
解决办法
5494
查看次数

在Meteor app中加载音频文件

我刚刚开始使用Meteor,我想播放静态音频文件,MP3或M4A.我似乎找不到放置这样一个文件的合适位置.我创建了一个公共/目录并将我的音频文件放在那里,但是当我尝试加载时http://localhost:3000/public/myfile.mp3,它只是再次加载我的Meteor主页(即常规HTML页面,而不是音频文件).就像服务器没有看到文件一样.有什么方法我必须用Meteor注册文件,还是应该在不同的位置?谢谢.

javascript audio mp3 meteor

2
推荐指数
1
解决办法
1000
查看次数

VS 2008 Intellisense for C#静态词典

我在C#类中有以下内容:

public static readonly SortedDictionary<string, string> Fields =
    new SortedDictionary<string, string>
        { ... }
Run Code Online (Sandbox Code Playgroud)

我希望有一种方法可以让Intellisense为所定义的所有键提供提示Fields.它提供的类中的方法和属性,包括列表Fields属性,但是当我去访问Fields[或者Fields[",它说没有什么比我需要提供一个字符串键等.有没有办法让它告诉我一个字符串键列表,因为这是一个静态类属性,在编译后完全没有动态或更改?

c# intellisense dictionary visual-studio-2008

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

Rails 自定义模型函数

我正在上数据库课程,讲师希望我们开发电子商务应用程序。她说我们可以使用我们喜欢的任何框架,现在我们已经过了学期的一半,她认为 Rails 做的太多,并希望我明确地编写我的 SQL 查询。

所以,我想做的是编写自己的函数并将它们添加到模型中,以基本上复制现有的功能(但使用我自己编写的 SQL)。

那么问题就变成了:

  1. 如何在模型内执行手动创建的查询?
  2. 如何将结果填充到一个空对象中,然后我可以返回并在视图中使用它?

另外,我知道这是多么糟糕的做法,我只是不想在这一点上从头开始使用 PHP。

ruby sql model ruby-on-rails

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

WPF,ListBox中没有任何内容

我不知道我在这里做错了什么.我有一个ListBox,其DataContextItemsSource设置,但并没有什么的ListBox,当我跑我的应用程序.在调试时,我的方法的第一行获取ListBox永远不会被击中的项目.这就是我所拥有的:

// Constructor in UserControl
public TemplateList()
{
    _templates = new Templates();
    InitializeComponent();
    DataContext = this;
}

// ItemsSource of ListBox
public List<Template> GetTemplates()
{
    if (!tryReadTemplatesIfNecessary(ref _templates))
    {
        return new List<Template>
            {
                // Template with Name property set:
                new Template("No saved templates", null)
            };
    }
    return _templates.ToList();
}
Run Code Online (Sandbox Code Playgroud)

这是我的XAML:

<ListBox ItemsSource="{Binding Path=GetTemplates}" Grid.Row="1" Grid.Column="1"
         Width="400" Height="300" DisplayMemberPath="Name"
         SelectedValuePath="Name"/>
Run Code Online (Sandbox Code Playgroud)

Template类的一个实例上,有一个Name属性只是一个string.我想要的只是显示模板名称列表.用户不会更改a中的任何数据Template,ListBox只需要是只读的. …

c# wpf xaml listbox itemssource

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

合并的DLL,Intellisense没有选择单独的XML doc文件

我使用ILMerge将我的几个C#项目DLL合并到一个DLL中,用于整个解决方案.我让每个项目为Intellisense生成其文档的.XML文件,当我尝试使用我的合并DLL作为另一个解决方案的参考时,我无法显示这些注释.我将这些文件都放在同一目录中:

  • MergedProjectDlls.dll
  • Project1.XML
  • Project2.XML
  • Project3.XML
  • Project4.XML

我尝试将单个项目XML文件重命名为MergedProjectDlls.XML,然后在Visual Studio中删除并重新添加引用,但是Intellisense仍然没有接受我在已重命名的项目XML文件中存在的注释.

我希望以某种方式将所有这些项目XML文件合并到一个名为MergedProjectDlls.XML的文件中.那可能吗?当Intellisense与MergedProjectDlls.dll位于同一目录时,它会自动接收吗?

编辑:刚刚在MSDN上找到了这个:

要使用生成的.xml文件与IntelliSense功能一起使用,请让.xml文件的文件名与要支持的程序集相同,然后确保.xml文件与程序集位于同一目录中.因此,在Visual Studio项目中引用程序集时,也会找到.xml文件.

并且:

除非使用/ target:module进行编译,否则file将包含指定包含编译输出文件的程序集清单的文件名的标记."

intellisense ilmerge build-process xml-documentation visual-studio

0
推荐指数
1
解决办法
1153
查看次数

帮我用out关键字清理这个疯狂的lambda

我的代码看起来很难看,而且我知道必须有更好的方法来做我正在做的事情:

private delegate string doStuff(
    PasswordEncrypter encrypter, RSAPublicKey publicKey,
    string privateKey, out string salt
);

private bool tryEncryptPassword(
    doStuff encryptPassword,
    out string errorMessage
)
{
    ...get some variables...
    string encryptedPassword = encryptPassword(encrypter, publicKey,
        privateKey, out salt);
    ...
}
Run Code Online (Sandbox Code Playgroud)

到目前为止这个东西并没有打扰我.这就是我打电话tryEncryptPassword看起来如此丑陋,并且有重复,因为我用两种方法调用它:

public bool method1(out string errorMessage)
{
    string rawPassword = "foo";
    return tryEncryptPassword(
        (PasswordEncrypter encrypter, RSAPublicKey publicKey,
            string privateKey, out string salt) =>
            encrypter.EncryptPasswordAndDoStuff( // Overload 1
                rawPassword, publicKey, privateKey, out salt
            ),
        out errorMessage
    );
}

public bool method2(SecureString …
Run Code Online (Sandbox Code Playgroud)

c# lambda refactoring delegates

0
推荐指数
1
解决办法
285
查看次数