今天在使用python的parser模块时,遇到这样的问题:
解析自带的example好好的,但解析我的文件时就报语法错误。
这个问题在以前写编译器时也出现过。根据以前的经验,估计是Unix和Windows平台的换行不同造成的。用Ultraedit将所有的换行都变成Unix格式的。问题仍然存在。
然后想到也许是Unicode编码造成的。去除首行的编码声明# -*- coding: utf-8 -*-。
报warning说存在非ASCII字符,去除所有中文。问题仍然存在。
最后觉得是文件仍是Unicode编码,使用Ultraedit将文件编码变成ASCII。成功!
总结:
1. 文件中有中文时要特别注意,很有可能导致各种奇怪的问题。
2. Unix和Windows平台的换行不同也要注意。
解析自带的example好好的,但解析我的文件时就报语法错误。
这个问题在以前写编译器时也出现过。根据以前的经验,估计是Unix和Windows平台的换行不同造成的。用Ultraedit将所有的换行都变成Unix格式的。问题仍然存在。
然后想到也许是Unicode编码造成的。去除首行的编码声明# -*- coding: utf-8 -*-。
报warning说存在非ASCII字符,去除所有中文。问题仍然存在。
最后觉得是文件仍是Unicode编码,使用Ultraedit将文件编码变成ASCII。成功!
总结:
1. 文件中有中文时要特别注意,很有可能导致各种奇怪的问题。
2. Unix和Windows平台的换行不同也要注意。