---
date: '2026-01-26'
description: and assignment 2
id: diagram
modified: 2026-06-05 15:08:40 GMT-04:00
tags:
  - sfwr4tb3
title: diagram of the EBNF
created: '2026-01-26'
published: '2026-01-26'
pageLayout: default
slug: thoughts/university/twenty-five-twenty-six/sfwr-4tb3/88-Assignment-2/diagram
permalink: https://aarnphm.xyz/thoughts/university/twenty-five-twenty-six/sfwr-4tb3/88-Assignment-2/diagram.md
generator:
  quartz: v4.6.0
  hostedProvider: Cloudflare
  baseUrl: aarnphm.xyz
full: https://aarnphm.xyz/llms-full.txt
---
**expression:**

![expression](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22239%22%20height%3D%22201%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%40namespace%20%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3B%20.line%20%7Bfill%3A%20none%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20.bold-line%20%7Bstroke%3A%20%23141000%3B%20shape-rendering%3A%20crispEdges%3B%20stroke-width%3A%202%3B%7D%20.thin-line%20%7Bstroke%3A%20%231F1800%3B%20shape-rendering%3A%20crispEdges%7D%20.filled%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20none%3B%7D%20text.terminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%23141000%3B%20font-weight%3A%20bold%3B%20%7D%20text.nonterminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231A1400%3B%20font-weight%3A%20normal%3B%20%7D%20text.regexp%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231F1800%3B%20font-weight%3A%20normal%3B%20%7D%20rect%2C%20circle%2C%20polygon%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20%23332900%3B%7D%20rect.terminal%20%7Bfill%3A%20%23FFDB4D%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.nonterminal%20%7Bfill%3A%20%23FFEC9E%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.text%20%7Bfill%3A%20none%3B%20stroke%3A%20none%3B%7D%20polygon.regexp%20%7Bfill%3A%20%23FFF4C7%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%229%20105%201%20101%201%20109%22%2F%3E%3Cpolygon%20points%3D%2217%20105%209%20101%209%20109%22%2F%3E%3Crect%20x%3D%2251%22%20y%3D%22123%22%20width%3D%2230%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%22121%22%20width%3D%2230%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%2259%22%20y%3D%22141%22%3E%2B%3C%2Ftext%3E%3Crect%20x%3D%2251%22%20y%3D%22167%22%20width%3D%2226%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%22165%22%20width%3D%2226%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%2259%22%20y%3D%22185%22%3E-%3C%2Ftext%3E%3Crect%20x%3D%22141%22%20y%3D%2291%22%20width%3D%2250%22%20height%3D%2232%22%2F%3E%3Crect%20x%3D%22139%22%20y%3D%2289%22%20width%3D%2250%22%20height%3D%2232%22%20class%3D%22nonterminal%22%2F%3E%3Ctext%20class%3D%22nonterminal%22%20x%3D%22149%22%20y%3D%22109%22%3Eterm%3C%2Ftext%3E%3Crect%20x%3D%22141%22%20y%3D%2247%22%20width%3D%2230%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%22139%22%20y%3D%2245%22%20width%3D%2230%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%22149%22%20y%3D%2265%22%3E%2B%3C%2Ftext%3E%3Crect%20x%3D%22141%22%20y%3D%223%22%20width%3D%2226%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%22139%22%20y%3D%221%22%20width%3D%2226%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%22149%22%20y%3D%2221%22%3E-%3C%2Ftext%3E%3Cpath%20class%3D%22line%22%20d%3D%22m17%20105%20h2%20m20%200%20h10%20m0%200%20h40%20m-70%200%20h20%20m50%200%20h20%20m-90%200%20q10%200%2010%2010%20m70%200%20q0%20-10%2010%20-10%20m-80%2010%20v12%20m70%200%20v-12%20m-70%2012%20q0%2010%2010%2010%20m50%200%20q10%200%2010%20-10%20m-60%2010%20h10%20m30%200%20h10%20m-60%20-10%20v20%20m70%200%20v-20%20m-70%2020%20v24%20m70%200%20v-24%20m-70%2024%20q0%2010%2010%2010%20m50%200%20q10%200%2010%20-10%20m-60%2010%20h10%20m26%200%20h10%20m0%200%20h4%20m40%20-76%20h10%20m50%200%20h10%20m-90%200%20l20%200%20m-1%200%20q-9%200%20-9%20-10%20l0%20-24%20q0%20-10%2010%20-10%20m70%2044%20l20%200%20m-20%200%20q10%200%2010%20-10%20l0%20-24%20q0%20-10%20-10%20-10%20m-70%200%20h10%20m30%200%20h10%20m0%200%20h20%20m-80%2010%20l0%20-44%20q0%20-10%2010%20-10%20m80%2054%20l0%20-44%20q0%20-10%20-10%20-10%20m-70%200%20h10%20m26%200%20h10%20m0%200%20h24%20m23%2088%20h-3%22%2F%3E%3Cpolygon%20points%3D%22229%20105%20237%20101%20237%20109%22%2F%3E%3Cpolygon%20points%3D%22229%20105%20221%20101%20221%20109%22%2F%3E%3C%2Fsvg%3E)

```
expression
         ::= ( '+' | '-' )? term ( ( '+' | '-' ) term )*
```

referenced by:

- factor

**term:**

![term](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22155%22%20height%3D%22125%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%40namespace%20%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3B%20.line%20%7Bfill%3A%20none%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20.bold-line%20%7Bstroke%3A%20%23141000%3B%20shape-rendering%3A%20crispEdges%3B%20stroke-width%3A%202%3B%7D%20.thin-line%20%7Bstroke%3A%20%231F1800%3B%20shape-rendering%3A%20crispEdges%7D%20.filled%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20none%3B%7D%20text.terminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%23141000%3B%20font-weight%3A%20bold%3B%20%7D%20text.nonterminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231A1400%3B%20font-weight%3A%20normal%3B%20%7D%20text.regexp%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231F1800%3B%20font-weight%3A%20normal%3B%20%7D%20rect%2C%20circle%2C%20polygon%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20%23332900%3B%7D%20rect.terminal%20%7Bfill%3A%20%23FFDB4D%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.nonterminal%20%7Bfill%3A%20%23FFEC9E%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.text%20%7Bfill%3A%20none%3B%20stroke%3A%20none%3B%7D%20polygon.regexp%20%7Bfill%3A%20%23FFF4C7%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%229%20105%201%20101%201%20109%22%2F%3E%3Cpolygon%20points%3D%2217%20105%209%20101%209%20109%22%2F%3E%3Crect%20x%3D%2251%22%20y%3D%2291%22%20width%3D%2256%22%20height%3D%2232%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%2289%22%20width%3D%2256%22%20height%3D%2232%22%20class%3D%22nonterminal%22%2F%3E%3Ctext%20class%3D%22nonterminal%22%20x%3D%2259%22%20y%3D%22109%22%3Efactor%3C%2Ftext%3E%3Crect%20x%3D%2251%22%20y%3D%2247%22%20width%3D%2228%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%2245%22%20width%3D%2228%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%2259%22%20y%3D%2265%22%3E%2A%3C%2Ftext%3E%3Crect%20x%3D%2251%22%20y%3D%223%22%20width%3D%2228%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%221%22%20width%3D%2228%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%2259%22%20y%3D%2221%22%3E%2F%3C%2Ftext%3E%3Cpath%20class%3D%22line%22%20d%3D%22m17%20105%20h2%20m20%200%20h10%20m56%200%20h10%20m-96%200%20l20%200%20m-1%200%20q-9%200%20-9%20-10%20l0%20-24%20q0%20-10%2010%20-10%20m76%2044%20l20%200%20m-20%200%20q10%200%2010%20-10%20l0%20-24%20q0%20-10%20-10%20-10%20m-76%200%20h10%20m28%200%20h10%20m0%200%20h28%20m-86%2010%20l0%20-44%20q0%20-10%2010%20-10%20m86%2054%20l0%20-44%20q0%20-10%20-10%20-10%20m-76%200%20h10%20m28%200%20h10%20m0%200%20h28%20m23%2088%20h-3%22%2F%3E%3Cpolygon%20points%3D%22145%20105%20153%20101%20153%20109%22%2F%3E%3Cpolygon%20points%3D%22145%20105%20137%20101%20137%20109%22%2F%3E%3C%2Fsvg%3E)

```
term     ::= factor ( ( '*' | '/' ) factor )*
```

referenced by:

- expression

**factor:**

![factor](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22281%22%20height%3D%22125%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%40namespace%20%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3B%20.line%20%7Bfill%3A%20none%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20.bold-line%20%7Bstroke%3A%20%23141000%3B%20shape-rendering%3A%20crispEdges%3B%20stroke-width%3A%202%3B%7D%20.thin-line%20%7Bstroke%3A%20%231F1800%3B%20shape-rendering%3A%20crispEdges%7D%20.filled%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20none%3B%7D%20text.terminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%23141000%3B%20font-weight%3A%20bold%3B%20%7D%20text.nonterminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231A1400%3B%20font-weight%3A%20normal%3B%20%7D%20text.regexp%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231F1800%3B%20font-weight%3A%20normal%3B%20%7D%20rect%2C%20circle%2C%20polygon%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20%23332900%3B%7D%20rect.terminal%20%7Bfill%3A%20%23FFDB4D%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.nonterminal%20%7Bfill%3A%20%23FFEC9E%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.text%20%7Bfill%3A%20none%3B%20stroke%3A%20none%3B%7D%20polygon.regexp%20%7Bfill%3A%20%23FFF4C7%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%229%2017%201%2013%201%2021%22%2F%3E%3Cpolygon%20points%3D%2217%2017%209%2013%209%2021%22%2F%3E%3Crect%20x%3D%2251%22%20y%3D%223%22%20width%3D%2268%22%20height%3D%2232%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%221%22%20width%3D%2268%22%20height%3D%2232%22%20class%3D%22nonterminal%22%2F%3E%3Ctext%20class%3D%22nonterminal%22%20x%3D%2259%22%20y%3D%2221%22%3Enumber%3C%2Ftext%3E%3Crect%20x%3D%2251%22%20y%3D%2247%22%20width%3D%2276%22%20height%3D%2232%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%2245%22%20width%3D%2276%22%20height%3D%2232%22%20class%3D%22nonterminal%22%2F%3E%3Ctext%20class%3D%22nonterminal%22%20x%3D%2259%22%20y%3D%2265%22%3Eidentifier%3C%2Ftext%3E%3Crect%20x%3D%2251%22%20y%3D%2291%22%20width%3D%2226%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%2289%22%20width%3D%2226%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%2259%22%20y%3D%22109%22%3E%28%3C%2Ftext%3E%3Crect%20x%3D%2297%22%20y%3D%2291%22%20width%3D%2290%22%20height%3D%2232%22%2F%3E%3Crect%20x%3D%2295%22%20y%3D%2289%22%20width%3D%2290%22%20height%3D%2232%22%20class%3D%22nonterminal%22%2F%3E%3Ctext%20class%3D%22nonterminal%22%20x%3D%22105%22%20y%3D%22109%22%3Eexpression%3C%2Ftext%3E%3Crect%20x%3D%22207%22%20y%3D%2291%22%20width%3D%2226%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%22205%22%20y%3D%2289%22%20width%3D%2226%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%22215%22%20y%3D%22109%22%3E%29%3C%2Ftext%3E%3Cpath%20class%3D%22line%22%20d%3D%22m17%2017%20h2%20m20%200%20h10%20m68%200%20h10%20m0%200%20h114%20m-222%200%20h20%20m202%200%20h20%20m-242%200%20q10%200%2010%2010%20m222%200%20q0%20-10%2010%20-10%20m-232%2010%20v24%20m222%200%20v-24%20m-222%2024%20q0%2010%2010%2010%20m202%200%20q10%200%2010%20-10%20m-212%2010%20h10%20m76%200%20h10%20m0%200%20h106%20m-212%20-10%20v20%20m222%200%20v-20%20m-222%2020%20v24%20m222%200%20v-24%20m-222%2024%20q0%2010%2010%2010%20m202%200%20q10%200%2010%20-10%20m-212%2010%20h10%20m26%200%20h10%20m0%200%20h10%20m90%200%20h10%20m0%200%20h10%20m26%200%20h10%20m23%20-88%20h-3%22%2F%3E%3Cpolygon%20points%3D%22271%2017%20279%2013%20279%2021%22%2F%3E%3Cpolygon%20points%3D%22271%2017%20263%2013%20263%2021%22%2F%3E%3C%2Fsvg%3E)

```
factor   ::= number
           | identifier
           | '(' expression ')'
```

referenced by:

- term

**number:**

![number](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22161%22%20height%3D%2253%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%40namespace%20%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3B%20.line%20%7Bfill%3A%20none%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20.bold-line%20%7Bstroke%3A%20%23141000%3B%20shape-rendering%3A%20crispEdges%3B%20stroke-width%3A%202%3B%7D%20.thin-line%20%7Bstroke%3A%20%231F1800%3B%20shape-rendering%3A%20crispEdges%7D%20.filled%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20none%3B%7D%20text.terminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%23141000%3B%20font-weight%3A%20bold%3B%20%7D%20text.nonterminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231A1400%3B%20font-weight%3A%20normal%3B%20%7D%20text.regexp%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231F1800%3B%20font-weight%3A%20normal%3B%20%7D%20rect%2C%20circle%2C%20polygon%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20%23332900%3B%7D%20rect.terminal%20%7Bfill%3A%20%23FFDB4D%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.nonterminal%20%7Bfill%3A%20%23FFEC9E%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.text%20%7Bfill%3A%20none%3B%20stroke%3A%20none%3B%7D%20polygon.regexp%20%7Bfill%3A%20%23FFF4C7%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%229%2033%201%2029%201%2037%22%2F%3E%3Cpolygon%20points%3D%2217%2033%209%2029%209%2037%22%2F%3E%3Cpolygon%20points%3D%2251%2035%2058%2019%20106%2019%20113%2035%20106%2051%2058%2051%22%2F%3E%3Cpolygon%20points%3D%2249%2033%2056%2017%20104%2017%20111%2033%20104%2049%2056%2049%22%20class%3D%22regexp%22%2F%3E%3Ctext%20class%3D%22regexp%22%20x%3D%2264%22%20y%3D%2237%22%3E%5B0-9%5D%3C%2Ftext%3E%3Cpath%20class%3D%22line%22%20d%3D%22m17%2033%20h2%20m20%200%20h10%20m62%200%20h10%20m-102%200%20l20%200%20m-1%200%20q-9%200%20-9%20-10%20l0%20-12%20q0%20-10%2010%20-10%20m82%2032%20l20%200%20m-20%200%20q10%200%2010%20-10%20l0%20-12%20q0%20-10%20-10%20-10%20m-82%200%20h10%20m0%200%20h72%20m23%2032%20h-3%22%2F%3E%3Cpolygon%20points%3D%22151%2033%20159%2029%20159%2037%22%2F%3E%3Cpolygon%20points%3D%22151%2033%20143%2029%20143%2037%22%2F%3E%3C%2Fsvg%3E)

```
number   ::= [0-9]+
```

referenced by:

- factor

**identifier:**

![identifier](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22283%22%20height%3D%22291%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%40namespace%20%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3B%20.line%20%7Bfill%3A%20none%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20.bold-line%20%7Bstroke%3A%20%23141000%3B%20shape-rendering%3A%20crispEdges%3B%20stroke-width%3A%202%3B%7D%20.thin-line%20%7Bstroke%3A%20%231F1800%3B%20shape-rendering%3A%20crispEdges%7D%20.filled%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20none%3B%7D%20text.terminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%23141000%3B%20font-weight%3A%20bold%3B%20%7D%20text.nonterminal%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231A1400%3B%20font-weight%3A%20normal%3B%20%7D%20text.regexp%20%7Bfont-family%3A%20Verdana%2C%20Sans-serif%3B%20font-size%3A%2012px%3B%20fill%3A%20%231F1800%3B%20font-weight%3A%20normal%3B%20%7D%20rect%2C%20circle%2C%20polygon%20%7Bfill%3A%20%23332900%3B%20stroke%3A%20%23332900%3B%7D%20rect.terminal%20%7Bfill%3A%20%23FFDB4D%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.nonterminal%20%7Bfill%3A%20%23FFEC9E%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%20rect.text%20%7Bfill%3A%20none%3B%20stroke%3A%20none%3B%7D%20polygon.regexp%20%7Bfill%3A%20%23FFF4C7%3B%20stroke%3A%20%23332900%3B%20stroke-width%3A%201%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpolygon%20points%3D%229%20183%201%20179%201%20187%22%2F%3E%3Cpolygon%20points%3D%2217%20183%209%20179%209%20187%22%2F%3E%3Cpolygon%20points%3D%2251%20185%2058%20169%20104%20169%20111%20185%20104%20201%2058%20201%22%2F%3E%3Cpolygon%20points%3D%2249%20183%2056%20167%20102%20167%20109%20183%20102%20199%2056%20199%22%20class%3D%22regexp%22%2F%3E%3Ctext%20class%3D%22regexp%22%20x%3D%2264%22%20y%3D%22187%22%3E%5Ba-z%5D%3C%2Ftext%3E%3Cpolygon%20points%3D%2251%20229%2058%20213%20106%20213%20113%20229%20106%20245%2058%20245%22%2F%3E%3Cpolygon%20points%3D%2249%20227%2056%20211%20104%20211%20111%20227%20104%20243%2056%20243%22%20class%3D%22regexp%22%2F%3E%3Ctext%20class%3D%22regexp%22%20x%3D%2264%22%20y%3D%22231%22%3E%5BA-Z%5D%3C%2Ftext%3E%3Crect%20x%3D%2251%22%20y%3D%22257%22%20width%3D%2228%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%2249%22%20y%3D%22255%22%20width%3D%2228%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%2259%22%20y%3D%22275%22%3E_%3C%2Ftext%3E%3Cpolygon%20points%3D%22173%20151%20180%20135%20226%20135%20233%20151%20226%20167%20180%20167%22%2F%3E%3Cpolygon%20points%3D%22171%20149%20178%20133%20224%20133%20231%20149%20224%20165%20178%20165%22%20class%3D%22regexp%22%2F%3E%3Ctext%20class%3D%22regexp%22%20x%3D%22186%22%20y%3D%22153%22%3E%5Ba-z%5D%3C%2Ftext%3E%3Cpolygon%20points%3D%22173%20107%20180%2091%20228%2091%20235%20107%20228%20123%20180%20123%22%2F%3E%3Cpolygon%20points%3D%22171%20105%20178%2089%20226%2089%20233%20105%20226%20121%20178%20121%22%20class%3D%22regexp%22%2F%3E%3Ctext%20class%3D%22regexp%22%20x%3D%22186%22%20y%3D%22109%22%3E%5BA-Z%5D%3C%2Ftext%3E%3Cpolygon%20points%3D%22173%2063%20180%2047%20228%2047%20235%2063%20228%2079%20180%2079%22%2F%3E%3Cpolygon%20points%3D%22171%2061%20178%2045%20226%2045%20233%2061%20226%2077%20178%2077%22%20class%3D%22regexp%22%2F%3E%3Ctext%20class%3D%22regexp%22%20x%3D%22186%22%20y%3D%2265%22%3E%5B0-9%5D%3C%2Ftext%3E%3Crect%20x%3D%22173%22%20y%3D%223%22%20width%3D%2228%22%20height%3D%2232%22%20rx%3D%2210%22%2F%3E%3Crect%20x%3D%22171%22%20y%3D%221%22%20width%3D%2228%22%20height%3D%2232%22%20class%3D%22terminal%22%20rx%3D%2210%22%2F%3E%3Ctext%20class%3D%22terminal%22%20x%3D%22181%22%20y%3D%2221%22%3E_%3C%2Ftext%3E%3Cpath%20class%3D%22line%22%20d%3D%22m17%20183%20h2%20m20%200%20h10%20m60%200%20h10%20m0%200%20h2%20m-102%200%20h20%20m82%200%20h20%20m-122%200%20q10%200%2010%2010%20m102%200%20q0%20-10%2010%20-10%20m-112%2010%20v24%20m102%200%20v-24%20m-102%2024%20q0%2010%2010%2010%20m82%200%20q10%200%2010%20-10%20m-92%2010%20h10%20m62%200%20h10%20m-92%20-10%20v20%20m102%200%20v-20%20m-102%2020%20v24%20m102%200%20v-24%20m-102%2024%20q0%2010%2010%2010%20m82%200%20q10%200%2010%20-10%20m-92%2010%20h10%20m28%200%20h10%20m0%200%20h34%20m40%20-88%20h10%20m0%200%20h72%20m-102%200%20l20%200%20m-1%200%20q-9%200%20-9%20-10%20l0%20-14%20q0%20-10%2010%20-10%20m82%2034%20l20%200%20m-20%200%20q10%200%2010%20-10%20l0%20-14%20q0%20-10%20-10%20-10%20m-82%200%20h10%20m60%200%20h10%20m0%200%20h2%20m-92%2010%20l0%20-44%20q0%20-10%2010%20-10%20m92%2054%20l0%20-44%20q0%20-10%20-10%20-10%20m-82%200%20h10%20m62%200%20h10%20m-92%2010%20l0%20-44%20q0%20-10%2010%20-10%20m92%2054%20l0%20-44%20q0%20-10%20-10%20-10%20m-82%200%20h10%20m62%200%20h10%20m-92%2010%20l0%20-44%20q0%20-10%2010%20-10%20m92%2054%20l0%20-44%20q0%20-10%20-10%20-10%20m-82%200%20h10%20m28%200%20h10%20m0%200%20h34%20m23%20166%20h-3%22%2F%3E%3Cpolygon%20points%3D%22273%20183%20281%20179%20281%20187%22%2F%3E%3Cpolygon%20points%3D%22273%20183%20265%20179%20265%20187%22%2F%3E%3C%2Fsvg%3E)

```
identifier
         ::= [a-zA-Z_] [a-zA-Z0-9_]*
```

referenced by:

- factor

