tanszek:oktatas:techcomm:syntax_graphs
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:techcomm:syntax_graphs [2024/10/07 16:46] – knehez | tanszek:oktatas:techcomm:syntax_graphs [2025/11/25 08:07] (current) – [Can we define JSON with BN formulas?] knehez | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ==== Syntax Graphs ==== | ==== Syntax Graphs ==== | ||
| - | Syntactic rules can also be modeled using graphs, for example in the following way: | + | Syntactic rules can also be modeled using graphs, for example, in the following way: |
| {{: | {{: | ||
| Line 22: | Line 22: | ||
| This shows how graphical representations can help understand and construct syntactically correct structures in programming languages. | This shows how graphical representations can help understand and construct syntactically correct structures in programming languages. | ||
| + | |||
| + | === 2. Example: Syntax Graph of the JSON (JavaScript Object Notation) Data Exchange Format with Examples === | ||
| + | |||
| + | The JSON format is very important in modern information technology. By looking at examples and the syntax graph, we can understand its structure. | ||
| + | |||
| + | === Simple JSON Data === | ||
| + | |||
| + | <sxh json> | ||
| + | { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | This is an object that contains **name-value pairs** or **arrays**, combined in various ways. For example: | ||
| + | |||
| + | <sxh json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | This example shows how JSON can be used to structure objects, where properties have values and methods. The syntax graph helps visualize the relationships between objects, arrays, and values. | ||
| + | |||
| + | JSON object: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | JSON array: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | JSON types: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | JSON string: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | JSON number: | ||
| + | |||
| + | For example: '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== Can we define JSON with BN formulas? ==== | ||
| + | |||
| + | |||
| + | $$ | ||
| + | \begin{aligned} | ||
| + | \langle json \rangle &::= \langle value \rangle \\[6pt] | ||
| + | % | ||
| + | \langle value \rangle &:: | ||
| + | \langle object \rangle | ||
| + | \mid \langle array \rangle | ||
| + | \mid \langle string \rangle | ||
| + | \mid \langle number \rangle | ||
| + | \mid \text{" | ||
| + | \mid \text{" | ||
| + | \mid \text{" | ||
| + | % | ||
| + | \langle object \rangle &:: | ||
| + | \text{" | ||
| + | % | ||
| + | \langle members \rangle &:: | ||
| + | \langle pair \rangle \{\, \text{"," | ||
| + | % | ||
| + | \langle pair \rangle &:: | ||
| + | \langle string \rangle\, \text{":" | ||
| + | % | ||
| + | \langle array \rangle &:: | ||
| + | \text{" | ||
| + | % | ||
| + | \langle elements \rangle &:: | ||
| + | \langle value \rangle \{\, \text{"," | ||
| + | % | ||
| + | \langle string \rangle &:: | ||
| + | \text{" | ||
| + | % | ||
| + | \langle character \rangle &:: | ||
| + | \langle unescaped \rangle | ||
| + | \mid \text{" | ||
| + | % | ||
| + | \langle unescaped \rangle &:: | ||
| + | \text{any Unicode char, except | ||
| + | \{" | ||
| + | % | ||
| + | \langle escape \rangle &:: | ||
| + | \text{" | ||
| + | \mid \text{" | ||
| + | \mid \text{"/" | ||
| + | \mid \text{" | ||
| + | \mid \text{" | ||
| + | \mid \text{" | ||
| + | \mid \text{" | ||
| + | \mid \text{" | ||
| + | \mid \langle escape\_unicode \rangle \\[10pt] | ||
| + | % | ||
| + | \langle escape\_unicode \rangle &:: | ||
| + | \text{" | ||
| + | % | ||
| + | \langle number \rangle &:: | ||
| + | \langle int \rangle\, | ||
| + | \{ \langle frac \rangle \}_{0}^{1}\, | ||
| + | \{ \langle exp \rangle \}_{0}^{1} \\[8pt] | ||
| + | % | ||
| + | \langle int \rangle &:: | ||
| + | \text{" | ||
| + | \mid \langle onenine \rangle \{ \langle digit \rangle \}_{0}^{\infty} \\[6pt] | ||
| + | % | ||
| + | \langle frac \rangle &:: | ||
| + | \text{" | ||
| + | % | ||
| + | \langle exp \rangle &:: | ||
| + | (\text{" | ||
| + | \{ \text{" | ||
| + | \{ \langle digit \rangle \}_{1}^{\infty} \\[10pt] | ||
| + | % | ||
| + | \langle digit \rangle &:: | ||
| + | \text{" | ||
| + | % | ||
| + | \langle onenine \rangle &:: | ||
| + | \text{" | ||
| + | \mid \text{" | ||
| + | \end{aligned} | ||
| + | $$ | ||
| + | |||
tanszek/oktatas/techcomm/syntax_graphs.1728319579.txt.gz · Last modified: 2024/10/07 16:46 by knehez
