Skip to content

Commit c26f048

Browse files
committed
docs: synced via GitHub Actions
1 parent 5f7ecce commit c26f048

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

src/tutorial/simple/13-custom-dsl.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ project-root/
7979

8080
<!-- 自定义解析器,用于simple文件 -->
8181
<loader fileType="simple"
82-
class="io.nop.xlang.xdsl.SimpleDslParser"
83-
returnXNode="true"/>
82+
class="io.nop.xlang.xdsl.SimpleDslLoader"/>
8483
</loaders>
8584

8685
</model>
@@ -90,21 +89,25 @@ project-root/
9089

9190
- **name="simple"**:DSL模型名称,在系统中唯一标识
9291
- **xdsl-loader**:基于xdef定义的通用解析器,处理XML格式
93-
- **自定义loader**:通过Java类处理特定格式,`returnXNode="true"`表示返回XNode语法树
92+
9493

9594
## 4. 实现自定义解析器
9695

97-
创建Java解析器类 `io.nop.xlang.xdsl.SimpleDslParser`
96+
创建Java解析器类 `io.nop.xlang.xdsl.SimpleDslLoader`
9897

9998
```java
100-
public class SimpleDslParser implements IResourceParser<XNode> {
101-
private static final Logger LOG = LoggerFactory.getLogger(SimpleDslParser.class);
99+
public class SimpleDslLoader extends AbstractDslResourceLoader<Object> {
100+
101+
public SimpleDslLoader() {
102+
super("/simple/simple.xdef", null);
103+
}
102104

103105
@Override
104-
public XNode parseResource(IResource resource) {
105-
...
106+
public XNode loadDslNodeFromResource(IResource resource) {
107+
return ...
106108
}
107109
}
110+
108111
```
109112

110113
## 5. 创建DSL示例文件
@@ -245,7 +248,7 @@ public class CodeGenerator {
245248

246249
```
247250
test.simple
248-
SimpleDslParser (自定义解析逻辑)
251+
SimpleDslLoader (自定义解析逻辑)
249252
→ 返回XNode语法树
250253
→ DslModelParser (根据xdef验证和转换)
251254
→ SimpleModel Java对象

0 commit comments

Comments
 (0)