小编Wil*_*ins的帖子

是否有适用于Python的标准词法分析器/解析器工具?

志愿者工作要求我们将大量LaTeX文档转换为ePub文件格式.这是一系列开源小说书,到目前为止,它只是通过按需印刷服务在纸上制作.我们希望能够向图书阅读器设备(例如Kindle)的用户提供这本书,这些设备需要ePub格式才能获得最佳效果.

幸运的是,ePub是一种非常简单的格式,但是LaTeX生成所需的XHTML输出并不是一件容易的事.

我们尝试了替代的LaTeX编译器(例如plastex),但最后我们认为简单编写我们自己的编译器可能会容易得多,该编译器理解LaTeX语言的一小部分并直接编译为XHTML/ePub.

以前我在Windows上使用了一个名为GOLD的工具.这允许我直接从BNF语法转到存根解析器.我也很高兴用我喜欢的任何语言实现解析器.(我选择Python).

这个产品必须在Linux上运行,所以我想知道是否有一个在Ubutnu/Eclipse/Python下运行良好的等效工具链.我们的想法是,我们将采用TeX的语法并实现其中的一小部分,但我们不想花费大量时间来担心语法和解析.解析器生成器显然会为我们节省大量时间.

萨尔


更新1:具有出色文档或教程的解决方案的奖励标记.


更新2:如果TeX的语法文件已经可用,则额外奖励,因为我所要做的就是实现我们关心的功能.

python compiler-construction parsing bnf tex

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

关闭并重新打开 Python 套接字后,“[Errno 10048] 通常只允许每个套接字地址(协议/网络地址/端口)使用一次”

我有这个代码:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    s.bind(('10.0.0.253', 8080))
except:
    s.close()
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('10.0.0.253', 8080))


s.listen(1)
conn, addr = s.accept()
Run Code Online (Sandbox Code Playgroud)

它绑定,然后如果遇到错误,则销毁套接字,然后创建一个新套接字并将其绑定到相同的 IP 和端口。出于某种原因,即使关闭套接字后,我也会收到此错误:

Traceback (most recent call last):
File "C:\Users\other\Desktop\tcpReverseShell_Server.py", line 68, in <module>
  main()
  File "C:\Users\other\Desktop\tcpReverseShell_Server.py", line 66, in main
  connect()
File "C:\Users\other\Desktop\tcpReverseShell_Server.py", line 43, in connect
  s.bind(('10.0.0.253', 8080))
File "C:\Python27\lib\socket.py", line 228, in meth
  return getattr(self._sock,name)(*args)
error: [Errno 10048] Only one usage of each socket address (protocol/network 
address/port) is normally permitted
Run Code Online (Sandbox Code Playgroud)

我找到的唯一解决方案是使用s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1),但是当我尝试时,我收到此错误:[Errno …

python sockets

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

如何使用C++将Windows 7锁定到单个程序中?

我一直在使用Visual Studio 2015(C++)中的应用程序.这是我学校技术支持的自助服务终端应用程序.基本上,它是一个支持站点,将在自助服务终端中运行.我需要弄清楚如何锁定窗口,以便它只运行该程序.以全屏模式运行程序也很有帮助.请记住,所有信息亭都运行Windows 7.

c++ windows kiosk fullscreen

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

标签 统计

python ×2

bnf ×1

c++ ×1

compiler-construction ×1

fullscreen ×1

kiosk ×1

parsing ×1

sockets ×1

tex ×1

windows ×1