当前位置:  技术问答>linux和unix

关于我的作业中的一点小问题(100分)。

    来源: 互联网  发布时间:2015-11-22

    本文导语:  我的编译原理作业是:做一个snl语言的编译器。 我刚刚写完这个编译器的词法分析部分。 算法很简单,但在Win32下和Linux下有不同的表现: 我用std::getline(std::ifstream, std::string, 'n')读文件的一行, 分析完一行再读一...

我的编译原理作业是:做一个snl语言的编译器。

我刚刚写完这个编译器的词法分析部分。

算法很简单,但在Win32下和Linux下有不同的表现:
我用std::getline(std::ifstream, std::string, 'n')读文件的一行,
分析完一行再读一行。
' ', 't', '10', '13', 这几个字符为空白字符不作分析。
分析到语言中不允许有字符就抛出异常(虽然没有必要在这里使用异常)。

这个方法在机房(Win98 & VC6)可以正确运行,
但在我的机器(FC5 & gcc v4.1.0)上每行结尾都会抛出异常,
异常的原因是:
有一个奇怪的字符c,
static_cast(c) == 13,但c != '13'
不知道是为什么(一个ASCII码为13的字符,怎么可能不是'13'呢)?

程序在下面:
有问题的地方在lexAnalysis.cc文件的第223行(在那那里我写了注释)。
测试文件可以用任何文本文件,关键是每行结尾的那个异常。
//main.cc
#ifndef _lexAnalysis_h_

#include "lexAnalysis.h"

#endif



#include 



int main()

{

using namespace seven1::mickey;

using namespace seven1::lexical::mickey;



try

{

std::cout 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 作业控制中的前台作业和后台作业。
  • 进程组,会话,和作业是什么关系?
  • sql server维护计划自动备份数据库作业执行失败会自动生成abc82作业的解决办法
  • Node.js 作业管理器 neuron
  • Java批量作业框架 Java Batch Job Framework
  • Ganglia的批量作业监控插件 Job Monarch
  • 作业调度工具 xjobs
  • 作业调度服务器 Gearmand
  • Java作业调度 Oddjob
  • 作业任务调度引擎 JobServer
  • 作业调度框架 Quartz
  • 对于操作系统的程序接口,作业接口,单内核,微内核到底有什么区别?
  • Hadoop作业调度管理系统 Corona
  • 怎么写linux和windows2000的架构区别!我要作业!谢谢
  • 怎样取消一个正在打印的作业?
  • 急,急!!!!我的计划cron作业为什么起不来!!!来着有分
  • 急!急!!急!!!我的计划cron作业为什么起不来,请问如何解决?
  • Java批量作业执行框架 MyBatchFramework
  • 一道计算作业优先数的题目___八股考试,我想学东西!
  • NFS共享作业时, 在客户端只可以看到服务器端的共享目录,而看不到共享目录下的内容.?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3