我正在将无上下文语法转换为Greibach Normal Form(GNF).主要转换(来自Hopcroft和Ullman)是对语法的索引变量的迭代序列.它本质上是"无国籍的".我已经将它实现为适当索引的一系列折叠(实现相当简单):
gnf :: Ord a => Set (Rule a) -> Set (Rule a)
gnf rl = foldl step1 rl [1..maxIndex rl]
where step1 rl' k = foldl step2 rl' [1..k - 1]
where step2 rl'' j = noLR k (subst rl'' k j)
Run Code Online (Sandbox Code Playgroud)
maxIndex rl返回一组规则中的最大变量索引; subst rl kj通过右侧以j -indexed变量开头的规则对k- indexed规则执行替换.执行gnf后,我需要以相反的顺序对语法执行最后一次传递.
问题是noLR,它使用左递归k - indexed规则转换语法.这是一个"状态"功能,因为唯一的变量必须为每个规则(或生成ķ -indexed规则),其noLR被应用.所以我写了一个有状态函数
noLR :: Ord a => Int -> Set (Rule a) -> State …Run Code Online (Sandbox Code Playgroud) Microsoft有一个扩展,可以声明模板实例化是外部的; 因此,它不会被隐式实例化.至少那是理论.我尝试用代码再现它
#include <vector>
class Foo{
int i;
public:
virtual ~Foo();
};
extern template class std::vector<Foo>;
Run Code Online (Sandbox Code Playgroud)
这给了我
warning C4231: nonstandard extension used : 'extern' before template
explicit instantiation
Run Code Online (Sandbox Code Playgroud)
然而,似乎没有其他事情发生:程序继续链接find,即使我使用push_back(并且dumpbin显示push_back被实例化).
只有当我宣布
extern template void std::vector<Foo>::push_back(const Foo&);
Run Code Online (Sandbox Code Playgroud)
我按预期得到链接器错误.
那么:我如何将整个实例化(所有成员)声明为显式,以防止隐式实例化?
我在我的例行程序中有这段代码,但它似乎无法工作:
public MainForm()
{
InitializeComponent();
this.Text = "Elvis " + AssemblyVersion;
}
Run Code Online (Sandbox Code Playgroud)
在我的设计师中,我将表单标题设置为"Elvis".我看到AssemblyVersion信息被正确添加到文本中,但标题根本没有更新.我尝试刷新,无效等,但没有任何作用.知道如何在运行时更新标题吗?
我使用的是.NET 3.5和VS 2008.
谢谢
使用jQuery(或只是JavaScript),如何检测元素的继承背景颜色?
例如:
<div style="background-color: red">
<p id="target">I'd like to know that the background-color here is red</p>
</div>
Run Code Online (Sandbox Code Playgroud)
然而:
$('#target').css('background-color') == rgba(0,0,0,0)
Run Code Online (Sandbox Code Playgroud)
和
$('#target').css('backgroundColor') == rgba(0,0,0,0)
Run Code Online (Sandbox Code Playgroud)
我要求一般的解决方案. $('#target').parent().css('background-color')会在这种情况下工作,但不是全部.
我决定将Django 1.2项目更新为Django 1.3,以利用新的静态文件机制.我删除了旧版本的Django,并按照文档的说明从svn安装开发版本.
这些变化似乎已经发生了变化.也就是说,python -c"import django; print django.get_version()"产生"1.3 alpha 1 SVN-14686".然而,我似乎无法利用旧项目中的1.3功能.如果我做"python manage.py collectstatic --help"我得到"未知命令:'collectstatic'".
我尝试创建一个新项目并做同样的事情,并且collectstatic命令工作.我挖到了django.core.management,但实际上并没有真正理解它.get_commands()的docstring提到:
字典在第一次调用时缓存,并在后续调用中重用.
也许这完全无关紧要,但我想知道我的问题是否与缓存有关(也就是说,旧版本的命令字典是缓存的,它没有新的1.3命令?).有什么想法吗?
我是Mac OS X开发的新手.在XCode/Cocoa开发人员环境中,每个Objective-C项目都以
#import <Cocoa/Cocoa.h>
它开始工作正常但我对Cocoa.h文件位置感到困惑.我的文件系统上的Cocoa文件夹中没有Cocoa.h文件.我试图"查找/ Cocoa/Cocoa.h"和"找到Cocoa/Cocoa.h"没有找到任何内容.
任何人都可以给我一个关于编译器在#import语句中找到Cocoa.h头的方式和位置的提示.
谢谢,恢复Microsoft Addict
我需要遍历我的asp.net网页中的所有控件并对控件执行某些操作.在一个例子中,我正在从页面中创建一个巨大的字符串并通过电子邮件发送给自己,在另一个例子中,我将所有内容保存到cookie中.
问题是masterpages和包含控件集合的项目.我希望能够将一个Page传递给该方法,然后让该方法具有足够的通用性,以循环遍历最内层内容页面中的所有控件并使用它们.我尝试用递归来做这个,但我的递归是不完整的.
我想将一个Page对象传递给一个方法,并让该方法循环遍历最里面的内容页面中的所有控件.我怎样才能做到这一点?
private static String controlToString(Control control)
{
StringBuilder result = new StringBuilder();
String controlID = String.Empty;
Type type = null;
foreach (Control c in control.Controls)
{
try
{
controlID = c.ID.ToString();
if (c is IEditableTextControl)
{
result.Append(controlID + ": " + ((IEditableTextControl)c).Text);
result.Append("<br />");
}
else if (c is ICheckBoxControl)
{
result.Append(controlID + ": " + ((ICheckBoxControl)c).Checked);
result.Append("<br />");
}
else if (c is ListControl)
{
result.Append(controlID + ": " + ((ListControl)c).SelectedValue);
result.Append("<br />");
}
else if (c.HasControls()) …Run Code Online (Sandbox Code Playgroud) 使用JS嵌入flash的好处是我的知识:
navigator对象并查看安装了哪些Flash版本,可能会分支出来并基于此提供不同的内容src,flashvars,尺寸缺点:
专业人士似乎超过了缺点.我在移动内容方面做得不够,无法获得准确的意见.任何人都可以想到原因/为什么不呢?
我正在尝试将一些字符串写入画布(动态壁纸)但是长字符串没有得到包装有没有办法做到这一点?
我认为帆布是我唯一可以使用的东西,因为它是一个动态壁纸.
我怎样才能在Python中执行以下操作?
row = [unicode(x.strip()) if x for x in row]
Run Code Online (Sandbox Code Playgroud)
基本上,列表理解,如果变量存在,您执行函数.
谢谢!