This commit is contained in:
jorenchik
2024-11-03 21:41:43 +02:00
parent 1ef997c517
commit 50f219da9e
8 changed files with 75 additions and 0 deletions

View File

@@ -1241,12 +1241,77 @@ Uz drošību risinājumam ir sekojošas prasības:
== Daļējs funkciju projektējums
#indent-par([
Apstrādājot jautājumu tekstu, tas tiek sadalīts tekstvienībās.
Tekstvienībai piemīt saturs, kas ir viens vai vairāki simboli. Tekstvienību
sarakstu ir vieglāk pārveidot jautājumu sarakstu parsēšanās procesā. Dažas
tekstvienības nesatur neko, bet ir izmantotas, lai atvieglotu parsēšanu.
Lielākā daļa no tekstvienībām satur vienu vai divus simbolus, kas veido
jautājumu struktūru un norāda jautājumu veidu. saturs ir aprakstīts tabulā
(skat. tabulu @tbl:token-table).
])
Leksiskā analīzes process pieņem simbolu virkni un veido tekstvienību sarakstu
no tās. Procesa laikā tiek uzturēts un papildināts simbolu buferis, no kā tiek
iegūtas tekstvienības. Veidojot tekstvienības, tiek saglabāta informācija par
atrašanos vietu - rindu un kolonnu. Leksiskās analīzes process ir aprakstīts
aktivitāšu diagrammā (skat. attēlu @fig:lexing-activity).
#pagebreak(weak: true)
#figure(
caption: "Tekstvienības",
kind: table,
tablex(
columns: 2,
[*Tekstvienība*], [*Saturs*],
[Jautājuma beigas],
[Simbols ">"],
[Grupas beigas],
[Simbols ":"],
[Svītras elementa sākums],
[Simbols "-"],
[Plusa elementa sākums],
[Simbols "+"],
[Secības elementa modifikators],
[Simbols "^"],
[Pārtraukuma sākums],
[Simbols "\["],
[Pārtraukuma beigas],
[Simbols "\]"],
[Teksta fragments],
[
Visi simboli, izņemot ">", ":", "-", "+", "^", "[", "]" un "\\".
Minētus simbolus var ierakstīt, ja pirms tiem ieraksta simbolu "\\".
],
[Pārtaukums],
[Decimāls skaitlis],
[Faila sākums],
[Nav satura],
[Faila beigas],
[Nav satura],
),
) <token-table>
#figure(
caption: "Leksiskās analīzes aktivitātes diagramma",
placement: none,
image("img/lexer_activity.svg"),
) <lexing-activity>
Parsēšanas procesā tekstvienības tiek pārveidotas uz jautājumu objektu sarakstu
un pēdējās mācīšanās laiku, ja tāds ir norādīts.
#figure(
caption: "Parsēšanas aktivitātes diagramma",
placement: none,
@@ -1259,6 +1324,12 @@ Uz drošību risinājumam ir sekojošas prasības:
image("img/parsing_answer_activity.svg"),
) <parsing-answer-activity>
#figure(
caption: "Nākamā jautājuma noteikšanas aktivitātes diagramma",
placement: none,
image("img/next_question_activity.svg"),
) <next-question-activitt>
== Saskarnes projektējums
#figure(