标签: lexical

Xcode 4 - 重命名/删除文件,但是找不到'找不到文件'错误

我只是使用Xcode的重构工具将一个核心数据类重命名为Player to Person.修复了因使用Xcode在重命名时遗漏的点符号导致的大约100个错误后,我到了最后一个:

Player.m - 词法或预处理器问题 - 找不到'Person.h'

Player.m不再存在于项目中,并在错误中显示为已删除(空图标).显然,既然我摆脱了它,我不希望它再存在!

为了解决这个问题,我尝试重新添加Player.h和Player.m的旧副本,以及清理.我检查了Build Phases-> Compile Sources部分,Person.m在那里,Player.m不是.Person.h确实存在.

不确定它是否重要,但我使用mogenerator来生成我的核心数据类.此外,这是我的第三个xcdatamodel版本.版本1和2使用了Player.h.

以下是错误的屏幕截图: Player.m  - 词法或预处理器问题 - 找不到'Person.h'

iphone preprocessor file-not-found lexical xcode4

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

如何检查编辑器是否为空?

我有两个编辑器实例。一个是可编辑的,第二个是只读的,用于预览用户输入的内容我在这些编辑器之间复制了编辑器状态 - 没有问题但是我想在第一个编辑器为空时隐藏第二个编辑器。我正在尝试这样的事情,但它总是返回 false

...
function onChange(editorState) {
  console.log(editorState.isEmpty())
}

function Editor() {
...

  return (
      <>
        <LexicalComposer initialConfig={editorConfig}>
            <ToolbarPlugin />
              <RichTextPlugin
                contentEditable={<ContentEditable className="editor-input" />}
                placeholder={<Placeholder />}
                ErrorBoundary={LexicalErrorBoundary}
              />
              <OnChangePlugin onChange={onChange} />
          <LexicalComposer />
   )
}
Run Code Online (Sandbox Code Playgroud)

lexical lexicaljs

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

将double转换为字符串.Boost Libraries似乎不起作用,sstream导致"SEG FAULT"

我有一个简单的问题,我想我只是在做一些导致SEGFAULT的愚蠢行为.

我只是想将一个double变量转换为一个字符串,然后将'strcat()'转换为一起,并将生成的连接字符串放在GTK Label中.(应该很简单,当然?!)

这是我的代码的一部分:

double fps_target = 2.71828
std::string fps_target_string;
std::stringstream convert;
convert << fps_target;
fps_target_string = convert.str();
g_print("seg fault occurs below");
label_fps_target = gtk_label_new(strcat("FPS Target: ", 
    (const char*) fps_target_string.c_str()));
Run Code Online (Sandbox Code Playgroud)

为什么不能工作?!:(

我尝试使用Boost :: Lexical_Cast的东西,但这不起作用:

double fps_target = 3.14159;
const char* fps_target_string = (const char*) (boost::lexical_cast<std::string>(fps_target));
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.如果任何一种方法的效果都很棒,但我并不是真的很担心怎么做,只要我能用一个字符串得到一个双倍的猫!

c++ double boost casting lexical

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

词汇错误:标识符拼写错误

在《龙书》中提到“词汇错误包括标识符的拼写错误。例如,拼写错误ellispeSizeelipseSize

我无法理解这是怎么回事(词法分析器可以识别拼写错误的标识符并导致错误)。和ellipseSize都是elipseSize有效的标识符词位。所以词法分析阶段应该没有问题。可能在编译的后期阶段,我们将了解到elipseSize尚未定义......

compiler-construction compiler-errors lexical

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

ES6/Node中的词法范围

我试图理解ES6词法范围(使用节点运行时).考虑以下:

'use strict';
let x = 10;
function f() {
   console.log(x);
   console.log(y); // This should crash
}

let y = 5;
f();
Run Code Online (Sandbox Code Playgroud)

从O'Reilly的书"学习Javascript"中解释:

词法作用域意味着您定义函数的范围内的任何变量(与您调用它时相反)都在函数的范围内.

但是,当我运行此程序(通过节点)时,它输出:10 5

是不是调用console.log(y)打破了这里的词法范围规则?如果没有,为什么不呢?

编辑:为了将来参考,似乎教科书的作者(Learning Javascript 3rd Edition O'Reilly)最近在"已确认的勘误表"中将此示例列为错误.在http://www.oreilly.com/catalog/errata.csp?isbn=0636920035534

javascript scoping lexical node.js ecmascript-6

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

计划范围(Lisp)

我知道该方案是一个词法范围/静态范围的语言,但我不明白为什么这两个代码块返回不同的结果.

   (define a 100)
   (let ((z 20))
      (lambda (a b) (+ a b)) a z)
Run Code Online (Sandbox Code Playgroud)

20

 (define a 100)
 (let ((z 20)) 
      (lambda (a b) (+ a b)) z a)
Run Code Online (Sandbox Code Playgroud)

100

lisp scheme scope lexical

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