小编bjo*_*rns的帖子

字符串输入到flex lexer

我想使用flex/bison解析器创建一个read-eval-print循环.麻烦的是,flex生成的词法分析器需要输入FILE*类型,我希望它是char*.反正有没有这样做?

一个建议是创建一个管道,将其提供给字符串并打开文件描述符并发送给词法分析器.这很简单,但感觉很复杂,而且与平台无关.有没有更好的办法?

c yacc lex bison flex-lexer

52
推荐指数
5
解决办法
3万
查看次数

alloc应该返回什么类型?

我有一个这样的方法,它使用类似的init方法对其他对象执行进一步的初始化.

- (Foo*)initWithInput:(NSMutableString*)i {
  bar = [[Bar alloc] initWithInput:input];
  return self;
}
Run Code Online (Sandbox Code Playgroud)

这会产生一个警告"Foo.m:19:警告:不兼容的Objective-C类型分配'struct Foo*',预期'struct Bar*'"

我假设alloc方法返回一个(id)类型,然后编译器无法决定我想在分配的对象上使用哪个initWithInput:方法.我当然可以删除这样的警告,但它并不是非常漂亮

- (Foo*)initWithInput:(NSMutableString*)i {
  bar = [((Bar*)[Bar alloc]) initWithInput:input];
  return self;
}
Run Code Online (Sandbox Code Playgroud)

是否有一种惯用的处理方式?

objective-c

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

标签 统计

bison ×1

c ×1

flex-lexer ×1

lex ×1

objective-c ×1

yacc ×1