MCPcopy Index your code
hub / github.com/I-Rinka/BIT-Compile-Principle

github.com/I-Rinka/BIT-Compile-Principle @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
5,581 symbols 10,173 edges 314 files 1,187 documented · 21%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

BIT-Compile-Theory

北京理工大学编译原理实验代码。对应实验1~实验8

注意,本人为18级编译原理课程最高分。课程老师已知道本人代码开源,课程会有查重算法。可以借鉴思想,但请勿过度抄袭。

.
├── Haskell_Use.md
├── LICENSE
├── Lab1
│   ├── C
│   ├── Haskell
│   ├── Java
│   ├── Python
│   ├── bench_mark.sh
│   └── show_run_time.sh
├── Lab2
│   ├── bench_mark.sh
│   └── src
├── Lab3
│   ├── config.xml
│   ├── doc
│   └── src
├── Lab4
│   └── 07111802_1120180488_王梓丞_lab4.pdf
├── Lab5
│   ├── 07111802_1120180488_王梓丞_lab5语法分析实验.pdf
│   ├── config.xml
│   ├── src
│   └── 实验5 Parser.jar
├── Lab6&7
│   ├── config.xml
│   ├── doc
│   └── src
├── Lab8
│   ├── config.xml
│   ├── doc
│   └── src
├── README.md
└── 如何优雅地展平你的语法树.pdf

实验1~实验2采用了自动化脚本的方式完成实验。

其中如何优雅地展平你的语法树.pdf描述了一个独创的从ANTLR构建抽象语法树的好方法。整个实验建议把语法分析部分作为核心,以较好的语法树的解析程序作为主控程序,以同时完成实验5、6、7、8.

欢迎借鉴,请勿过度抄袭。

Extension points exported contracts — how you extend this code

IMiniCCICGen (Interface)
(no doc) [40 implementers]
Lab5/src/bit/minisys/minicc/icgen/IMiniCCICGen.java
IMiniCCICGen (Interface)
(no doc) [40 implementers]
Lab3/src/bit/minisys/minicc/icgen/IMiniCCICGen.java
IMiniCCICGen (Interface)
(no doc) [40 implementers]
Lab6&7/src/bit/minisys/minicc/icgen/IMiniCCICGen.java
IMiniCCICGen (Interface)
(no doc) [40 implementers]
Lab8/src/bit/minisys/minicc/icgen/IMiniCCICGen.java
IMiniCCPreProcessor (Interface)
(no doc) [39 implementers]
Lab5/src/bit/minisys/minicc/pp/IMiniCCPreProcessor.java
IMiniCCPreProcessor (Interface)
(no doc) [39 implementers]
Lab3/src/bit/minisys/minicc/pp/IMiniCCPreProcessor.java
IMiniCCPreProcessor (Interface)
(no doc) [39 implementers]
Lab6&7/src/bit/minisys/minicc/pp/IMiniCCPreProcessor.java
IMiniCCPreProcessor (Interface)
(no doc) [39 implementers]
Lab8/src/bit/minisys/minicc/pp/IMiniCCPreProcessor.java

Core symbols most depended-on inside this repo

getToken
called by 171
Lab5/src/bit/minisys/minicc/parser/ExampleParser.java
getToken
called by 171
Lab6&7/src/bit/minisys/minicc/parser/ExampleParser.java
getToken
called by 171
Lab8/src/bit/minisys/minicc/parser/ExampleParser.java
visit
called by 140
Lab8/src/bit/minisys/minicc/parser/ast/ASTVisitor.java
toString
called by 64
Lab8/src/bit/minisys/minicc/ncgen/IR/IRInstruction/IR_instruction.java
copyFrom
called by 52
Lab6&7/src/bit/minisys/minicc/parser/CParser.java
copyFrom
called by 52
Lab8/src/bit/minisys/minicc/parser/CParser.java
enterRule
called by 46
Lab5/src/bit/minisys/minicc/parser/CParser.java

Shape

Method 4,881
Class 641
Interface 44
Enum 9
Function 6

Languages

Java100%
C1%

Modules by API surface

Lab8/src/bit/minisys/minicc/parser/CParser.java971 symbols
Lab6&7/src/bit/minisys/minicc/parser/CParser.java971 symbols
Lab5/src/bit/minisys/minicc/parser/CParser.java947 symbols
Lab8/src/bit/minisys/minicc/parser/CBaseListener.java201 symbols
Lab6&7/src/bit/minisys/minicc/parser/CBaseListener.java201 symbols
Lab8/src/bit/minisys/minicc/parser/CListener.java197 symbols
Lab6&7/src/bit/minisys/minicc/parser/CListener.java197 symbols
Lab5/src/bit/minisys/minicc/parser/CBaseListener.java195 symbols
Lab5/src/bit/minisys/minicc/parser/CListener.java191 symbols
Lab8/src/bit/minisys/minicc/parser/WzcListenr.java68 symbols
Lab6&7/src/bit/minisys/minicc/parser/WzcListenr.java68 symbols
Lab5/src/bit/minisys/minicc/parser/WzcListenr.java51 symbols

For agents

$ claude mcp add BIT-Compile-Principle \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact