Simple DDL Parser 使用教程

Simple DDL Parser 使用教程

1. 项目的目录结构及介绍

Simple DDL Parser 是一个用于解析 SQL 和 HQL DDL 文件的 Python 库。以下是该项目的目录结构及其介绍:

simple-ddl-parser/
├── docs/
│   └── README.rst
├── simple_ddl_parser/
│   ├── __init__.py
│   ├── ddl_parser.py
│   └── ...
├── tests/
│   ├── __init__.py
│   ├── test_ddl_parser.py
│   └── ...
├── .gitignore
├── LICENSE
├── pyproject.toml
└── README.md
  • docs/: 包含项目的文档文件,如 README.rst
  • simple_ddl_parser/: 包含项目的主要代码文件,如 __init__.pyddl_parser.py
  • tests/: 包含项目的测试文件,如 __init__.pytest_ddl_parser.py
  • .gitignore: Git 忽略文件。
  • LICENSE: 项目的许可证文件。
  • pyproject.toml: 项目的配置文件。
  • README.md: 项目的介绍文件。

2. 项目的启动文件介绍

Simple DDL Parser 的启动文件是 simple_ddl_parser/ddl_parser.py。这个文件包含了主要的解析逻辑和函数。以下是该文件的主要内容:

# simple_ddl_parser/ddl_parser.py

import ply.lex as lex
import ply.yacc as yacc

# 定义词法分析器
tokens = (
    'CREATE', 'TABLE', 'PRIMARY', 'KEY', 'FOREIGN', 'KEY', 'CONSTRAINT',
    'CHECK', 'NOT', 'NULL', 'UNIQUE', 'INDEX', 'INSERT', 'INTO', 'VALUES',
    'SELECT', 'FROM', 'WHERE', 'AND', 'OR', 'ORDER', 'BY', 'GROUP', 'HAVING',
    'JOIN', 'ON', 'AS', 'DISTINCT', 'UNION', 'ALL', 'SET', 'UPDATE', 'DELETE',
    'ALTER', 'ADD', 'DROP', 'COLUMN', 'TABLE', 'VIEW', 'TRIGGER', 'FUNCTION',
    'PROCEDURE', 'BEGIN', 'END', 'DECLARE', 'IF', 'THEN', 'ELSE', 'ELSIF',
    'LOOP', 'WHILE', 'FOR', 'IN', 'OUT', 'INOUT', 'RETURN', 'IS', 'ARE',
    'TYPE', 'RECORD', 'VARRAY', 'OF', 'UNDER', 'MAP', 'MEMBER', 'SELF',
    'CONSTANT', 'SUBTYPE', 'RANGE', 'EXCEPTION', 'RAISE', 'PRAGMA', 'EXECUTE',
    'IMMEDIATE', 'OPEN', 'CLOSE', 'FETCH', 'BULK', 'COLLECT', 'INTO', 'LIMIT',
    'OFFSET', 'CROSS', 'NATURAL', 'INNER', 'LEFT', 'RIGHT', 'FULL', 'OUTER',
    'USING', 'PARTITION', 'BY', 'RANGE', 'INTERVAL', 'OVER', 'WINDOW', 'WITH',
    'CASCADE', 'RESTRICT', 'NO', 'ACTION', 'DATA', 'TYPE', 'SCHEMA', 'DATABASE',
    'USER', 'ROLE', 'GRANT', 'REVOKE', 'IDENTIFIED', 'BY', 'PASSWORD', 'DEFAULT',
    'CURRENT', 'SESSION', 'NEXT', 'VALUE', 'SEQUENCE', 'INCREMENT', 'MINVALUE',
    'MAXVALUE', 'START', 'WITH', 'CACHE', 'NOCACHE', 'CYCLE', 'NOCYCLE',
    'OWNED', 'BY', 'CASCADE', 'RESTRICT', 'NO', 'ACTION', 'COMMENT', 'ON',
    'COLUMN', 'TABLE', 'VIEW', 'INDEX', 'TRIGGER', 'FUNCTION', 'PROCEDURE',
    'SCHEMA', 'DATABASE', 'USER', 'ROLE', 'GRANT', 'REVOKE', 'IDENTIFIED',
    'BY', 'PASSWORD', 'DEFAULT', 'CURRENT', 'SESSION', 'NEXT', 'VALUE',
    'SEQUENCE', 'INCREMENT', 'MINVALUE', 'MAXVALUE', 'START', 'WITH', 'CACHE',
    'NOCACHE', 'CYCLE', 'NOCYCLE', 'OWNED', 'BY', 'CASCADE', 'RESTRICT',
    'NO', 'ACTION', 'COMMENT', 'ON', 'COLUMN', 'TABLE

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值