雷克瑟一代

lexit的Python项目详细描述


Lexit

LExchange是使用Python 3.6编写的开源词表生成器,使用了新的特性,如^ {CD1>}、类型提示和^ {CD2>}挂钩。

json lexer示例

fromlexitimportLexerclassJsonLexer(Lexer):NUMBER=r'-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?'STRING=r'"(\\\"|\\\\|[^"\n])*?"i?'L_BRACE=r'{'R_BRACE=r'}'L_BRACKET=r'\['R_BRACKET=r'\]'TRUE=r'true'FALSE=r'false'NULL=r'null'COMMA=r','COLON=r':'ignore=r'\s+'tokens=list(JsonLexer.lex('{"hello": "world"}'))

要求

  • 唯一的要求是python3.6+
  • 用于测试pytest

安装

pip install lexit

错误处理

try:
    tokens = list(JsonLexer.lex('${"hello": "world"}'))
except LexerError as e:
    print(e.pretty())
    exit(1)

# Will produce the following output:

No match for character '$' in line 1 column 1
${"hello": "world"}
^

设计决策

  • 应该易于使用
  • 最长匹配优先级(++总是胜过+,尽管在lexer类中定义令牌的顺序不同)
  • 对人类的自我描述错误(应该很明显发生了什么以及何时发生)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否可以基于步骤定义返回的arraylist迭代一组功能文件行   SoapUI项目执行后的java WebDriver异常   在Java中,比较int和可能为null的整数最干净的方法是什么?   java生成带有bouncy castle的dsa/elgamal密钥对,该密钥对在GPG中导入时不会出错   java JLS与Sun javac的对应关系/它们不匹配的原因   用圆除法的java大长数值   是否存在用于集合处理的Java库?   java读取txt文件。显示每行旁边的整数之和,并找出其中最大的和   java计算数组中的值之和   java正在从SharedReferences中删除对象   在项目“XXXXX”上运行生成器“Jboss知识库生成器”时出现java错误。未知标签!位置=3池计数=12   java有没有更简单的方法来编写这个equalsIgnoreCase检查链?   java无法在NetBeans中找到main   如何在Java或C中创建MAC连接?   ssl Java MTLS主体和颁发者顺序   如何在java中解组具有未知子元素的XML?   java如何使用带多FirestoreRecyclerAdapter的房间?   java如何实例化IOSDriver以在当前会话中访问其方法   java Oracle在插入后更新NCLOB   我们可以在安卓中进行下一次迭代之前,在每次迭代中创建一个for循环来获取用户输入