# DSL Parsing规则

在 Parser 级别（即，在 stream 或 task 定义的主体内），规则如下：

* 选项的值通常解析到第一个空格字符。
* 不过，它们可以由字符串组成，用单引号或双引号包围。
* 请使用连续的两个相同引号使用。

因此，`--expression`在以下示例中，filter application 的配置效果是完全相同的：

```
filter --expression=payload>5
filter --expression="payload>5"
filter --expression='payload>5'
filter --expression='payload > 5'
```

可以说，最后一个更容易阅读。因为在实际的表达式周围使用了引号。实际表达式是`payload > 5`（没有引号）。

现在，假设我们想对字符串的值进行测试。如果我们想要比较 `payload`和 SpEL表达式，我们可以使用以下方法:

```bash
filter --expression=payload=='something'       
filter --expression='payload == ''something''' 
filter --expression='payload == "something"'  
```

| key | content                                                 |
| --- | ------------------------------------------------------- |
| 第一行 | 这是有效的，不过因为没有空格，可读性并不好                                   |
| 第二行 | <p>只使用单引号来包括整个参数。因此，参数中的单引号需要</p><p>加倍</p>              |
| 第三行 | <p>SpEL可以识别带有单引号或双引号的字符串文本，因此最后</p><p>一种方法可以说是最易读的。</p> |

请注意，前面的示例是不考虑在shell之中使用(例如，当直接调用REST API时)。因为在shell中输入时，很可能整个stream 的定义本身都在双引号中，需要转义。整个例子变成如下:

```bash
dataflow:>stream create something --definition "http | filter --expression=payload='something' | log"

dataflow:>stream create something --definition "http | filter --expression='payload == ''something''' | log"

dataflow:>stream create something --definition "http | filter --expression='payload == \"something\"' | log"
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cxz.gitbook.io/spring-cloud-date-flow/shell/untitled-5/untitled-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
