问题列表 - 第38003页

识别Treetop语法中的Ruby代码

我正在尝试使用Treetop来解析ERB文件.我需要能够处理如下行:

<% ruby_code_here %>
<%= other_ruby_code %>
Run Code Online (Sandbox Code Playgroud)

由于Treetop是用Ruby编写的,而你用Ruby编写Treetop语法,Treetop中已经有一些现有方法可以说"嘿,在这里寻找Ruby代码,并给我分解",而不必编写单独的规则来处理Ruby语言的所有部分?我正在寻找一种方法,在我的.treetop语法文件中,有类似的东西:

rule erb_tag
  "<%" ruby_code "%>" {
    def content
      ...
    end
  }
end
Run Code Online (Sandbox Code Playgroud)

ruby_code由树顶提供了一些规则进行处理.

编辑: 其他人使用Ruby-lex解析ERB,但我在尝试重现他所做的事时遇到了错误.在生成解析器类时,rlex程序没有生成完整的类.

编辑:对,所以你很多都很郁闷,但感谢你的信息.:)对于我的Master的项目,我正在编写一个测试用例生成器,需要使用ERB作为输入.幸运的是,出于我的目的,我只需要识别ERB代码中的一些内容,例如if语句和其他条件以及循环.我想我可以提出Treetop语法来匹配它,但需要注意的是Ruby并不完整.

ruby grammar parsing erb treetop

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

如何使用drupal_mail在drupal 6中发送HTML电子邮件?

如何使用drupal_mail在drupal 6中发送HTML电子邮件?如何更改HTML标头以HTML格式显示电子邮件内容.

drupal-6

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

如何在取消保存文件时指示Perforce进行合并而不是覆盖或还原?

当取消搁置在软件仓库中的文件时,如何指示Perforce将更改合并到工作区中的现有,打开和修改的文件中?Perforce似乎为用户提供的唯一选项是覆盖或还原工作区中的现有文件,但这不允许,例如,从多个更改列表中取消搁置并将更改集成到同一文件中.有没有解决这个限制的方法?

perforce unshelve shelving

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

如何查找特定密钥的密钥代码

找到特定按键的键码的最简单方法是什么?

是否有任何好的在线工具可以捕获任何关键事件并显示代码?

我想尝试使用网络浏览器在移动设备上找到特殊键的密钥代码,因此在线工具会很棒.

javascript keyboard jquery events keyboard-events

10
推荐指数
3
解决办法
4万
查看次数

导航dom javascript特定标记

这是DOM结构:

<div id="some">
 <a href="#" style="color:red;">NOTHIS</a>
 <a href="#" style="color:red;">NOTHIS</a>
 <h3 class="myclass"><a href="#" style="color:red;">HELLO</a></h3>
</div>
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得HELLOjavascript 的价值?

编辑:忘了,我在'some'里面有其他锚标签,所以我想严格要求h3里面的锚标签

EDIT2:知道了:

var n = document.getElementById('some').getElementsByTagName('h3')[0].getElementsByTagName('a')[0].innerHTML;
Run Code Online (Sandbox Code Playgroud)

谢谢大家!

javascript dom

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

WriteLine在控制台上,但在复古风格

我试着在Console上写,让我们说"输入你的用户名:",我知道要使用 Console.WriteLine("Enter your...");

但是我希望这个提示信息显示为"像外星人或星际迷航计算机一样输入".非常感谢您对最佳实践的专家答案.谢谢

.net c# console

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

VB.Net - "With"和Closures不混合

只是想我会分享这个以防万一其他人遇到这个.
我今天做了类似的事情,花了一些时间来弄清楚为什么这会在运行时引起问题.

这段代码:

Public Class foo
  Public bar As String = "blah"
End Class

Public Sub DoInline()
  Dim o As New foo
  Dim f As Func(Of String)
  With o
    f = Function() .bar
  End With
  Try
    Console.WriteLine(f.DynamicInvoke())
  Catch ex As Reflection.TargetInvocationException
    Console.WriteLine(ex.InnerException.ToString)
  End Try
End Sub
Run Code Online (Sandbox Code Playgroud)

抛出NullReferenceException.似乎With使用闭包作为其临时存储,并且在"End With"中,它将闭包的变量设置为Nothing.

这是RedGate Reflector中的代码:

Public Shared Sub DoInline()
    Dim o As New foo
    Dim $VB$Closure_ClosureVariable_7A_6 As New _Closure$__1
    $VB$Closure_ClosureVariable_7A_6.$VB$Local_VB$t_ref$L0 = o
    Dim f As Func(Of String) = New Func(Of String)(AddressOf $VB$Closure_ClosureVariable_7A_6._Lambda$__1)
    $VB$Closure_ClosureVariable_7A_6.$VB$Local_VB$t_ref$L0 = Nothing …
Run Code Online (Sandbox Code Playgroud)

vb.net lambda closures

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

高效的类和结构的推送

我见过我的同事经常做第二个片段.为什么是这样?我已经尝试添加打印语句来跟踪ctors和dtors,但两者看起来都相同.

    std::vector<ClassTest> vecClass1;
    ClassTest ct1;
    ct1.blah = blah // set some stuff
    ...
    vecClass1.push_back(ct1);
Run Code Online (Sandbox Code Playgroud)

    std::vector<ClassTest> vecClass2;
    vecClass2.push_back(ClassTest());
    ClassTest& ct2 = vecClass2.back();
    ct2.blah = blah // set some stuff
    ...
Run Code Online (Sandbox Code Playgroud)

PS.如果标题有误导性,我很抱歉.

编辑:

首先,谢谢大家的回复.

我用了一个小应用程序std::move.结果让我感到惊讶,也许是因为我做错了...有人请解释为什么"快速"路径表现得更好.

#include <vector>
#include <string>
#include <boost/progress.hpp>
#include <iostream>

const std::size_t SIZE = 10*100*100*100;
//const std::size_t SIZE = 1;
const bool log = (SIZE == 1);

struct SomeType {
    std::string who;
    std::string bio;
    SomeType() {
        if (log) std::cout << "SomeType()" << std::endl;
    }
    SomeType(const SomeType& other) …
Run Code Online (Sandbox Code Playgroud)

c++ stl stdvector

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

Mac DevX上的Web Dev,如何检查IE兼容性?

当我在MacOSX上开发一个主要使用Chrome的网站时,如何检查IE兼容性.

browser macos internet-explorer cross-browser

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

为什么Maven禁用HTTP请求的缓存?

HTTP请求的默认Maven设置(例如Maven用于从存储库获取工件的设置)包括以下标头:

Cache-control: no-cache
Cache-store: no-store
Pragma: no-cache
Expires: 0
Accept-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

这似乎是记录在案的行为.HTTP的默认Maven旅行车(即"轻量级"客户端)似乎不允许禁用这些标头.

为什么Maven默认以这种方式配置?对于实际拥有版本的工件,它们永远不会改变,对吧?

我在许多开发人员共享一个公共HTTP代理的环境中工作,这种行为意味着开发人员永远不会从缓存中受益.并且,我们拥有dependencyManagement所有依赖项,并且不使用SNAPSHOT或其他可能更改的版本,因此缓存似乎应该是安全的.

我可以在settings.xml或pom.xml中放置什么来禁用这些标头并允许我们的代理缓存响应并返回它们?

maven-2 http wagon

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