Speedex

Untitled

Sep 10th, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 3.85 KB | None | 0 0
  1. \section{Zpracovaní lexemů potřebných ke konstrukci case}
  2. Klíčová slova: kwCASE, kwOF se zpracovávají obdobně jako ostatní klíčová slova.
  3.  
  4. Lexém DOUBLEDOT viz zpracovaní DOT
  5. \chapter{Syntaktický analyzátor}\label{parser}
  6. \section{Atributová gramatika}\label{parser-gramatika}
  7. Pozn.: Gramatika zahrnuje pouze přidaná či upravená pravidla\\
  8. \small
  9. \begin{tabular}{|l|l|}
  10. \hline
  11. Syntax pravidlo & Atributovaná pravidla \\
  12. \hline
  13. \textbf{DeklProm} $\rightarrow$ var ident \textbf{ZbDeklProm} ; & \textbf{ZbDeklProm}.dIdent=ident.name \\
  14. \hline
  15. \textbf{ZbDeklProm} $\rightarrow$ , ident \textbf{ZbDeklProm} & dekl(\textbf{ZbDeklProm}.dIdent)\\                                                                      &\textbf{ZbDeklProm}1.dIdent=ident.name \\  
  16. \hline
  17. \textbf{ZbDeklProm} $\rightarrow$ : \textbf{ZbDeklColon} & \textbf{ZbDeklColon}.dIdent=\textbf{ZbDeklProm}.dIdent\\
  18. \hline 
  19. \textbf{ZbDeklProm} $\rightarrow$ ;  $\varepsilon$ & if(\textbf{ZbDeklProm}.ident!=NULL)\\& dekl(\textbf{zbDeklProm}.dIdent)\\
  20. \hline
  21. \textbf{ZbDeklColon} $\rightarrow$ Integer \textbf{ZbDeklProm}  & \textbf{ZbDeklProm}.dIdent=NULL\\
  22. \hline
  23. \textbf{ZbDeklColon} $\rightarrow$ Record ident \textbf{ZbDeklStruct}  &    deklstruct(\textbf{ZbDeklColon}.dIdent)
  24.                                                                     \\& deklStructMember(ident.name)
  25.                                                             \\& \textbf{ZbDeklStruc}t.dIdent=\textbf{ZbDeklColon}.dIdent \\
  26. \hline
  27. \textbf{ZbDeklStruct} $\rightarrow$ , ident \textbf{ZbDeklStruct}  &
  28. deklStructMember(ident.name)\\& \textbf{ZbDeklStruct}1.dIdent=\textbf{ZbDeklStruct}0.dIdent \\
  29. \hline
  30. \textbf{ZbDeklStruct} $\rightarrow$ : Integer End \textbf{ZbDeklProm} & \textbf{ZbDeklProm}.dIdent=NULL\\
  31. \hline
  32. \textbf{Příkaz} $\rightarrow$ \textbf{IdentAssign} := \textbf{Výraz}  & \\
  33. \hline
  34. \textbf{Příkaz} $\rightarrow$ case \textbf{CaseTelo} end  & \\  
  35. \hline
  36. \textbf{Faktor} $\rightarrow$ \textbf{IdentHodn} & \\  
  37. \hline
  38. \textbf{IdentAssign} $\rightarrow$ ident\textbf{ZbIdentAssign} & \textbf{ZbIdentAssign}.dIdent=ident.name \\  
  39. \hline
  40. \textbf{ZbIdentAssign} $\rightarrow$ .ident & \\  
  41. \hline
  42. \textbf{ZbIdentAssign} $\rightarrow$ $\varepsilon$ & \\  
  43. \hline
  44. \textbf{IdentHodn} $\rightarrow$ ident\textbf{ZbIdentHodn} & \textbf{ZbIdentHodn}.dIdent = ident.name \\  
  45. \hline
  46. \textbf{ZbIdentHodn} $\rightarrow$ .ident & \\  
  47. \hline
  48. \textbf{ZbIdentHodn} $\rightarrow$ $\varepsilon$ & \\  
  49. \hline
  50. \textbf{CaseTelo} $\rightarrow$ \textbf{Výraz} of \textbf{ZbCase} \textbf{ZbElse} & ZbCase.dAdresy=Adresy.init\\&ZbElse.dAdresy = ZbCase.sAdresy \\
  51. \hline
  52. \textbf{ZbCase} $\rightarrow$ cislo \textbf{ZbCasePrikazy} \textbf{ZbCase}
  53. & commands(\textbf{ZbCase}0.dAdresy)\\& \textbf{ZbCasePrikazy}.dAdresy=\textbf{ZbCase}0.dAdresy
  54. \\& \textbf{ZbCase}1.dAdresy = \textbf{ZbCasePrikazy}.sAdresy \\&\textbf{ZbCase}0.sAdresy=\textbf{ZbCase}1.sAdresy \\
  55. \hline
  56. \textbf{ZbCase} $\rightarrow$ $\varepsilon$ & \textbf{ZbCase}.sAdresy=\textbf{ZbCase}.dAdresy\\
  57. \hline
  58. \textbf{ZbCasePrikazy} $\rightarrow$ : \textbf{PrikazyCase} &commands(\textbf{ZbCasePrikazy}.dAdresy)\\&
  59. \textbf{ZbCasePrikazy}.sAdresy=\textbf{ZbCasePrikazy}.dAdresy \\
  60. \hline
  61. \textbf{ZbCasePrikazy} $\rightarrow$ , cislo \textbf{ZbCasePrikazy}&commands(\textbf{ZbCasePrikazy}.dAdresy)\\&
  62. \textbf{ZbCasePrikazy}1.dAdresy=\textbf{ZbCasePrikazy}0.dAdresy\\&
  63. \textbf{ZbCasePrikazy}0.sAdresy=\textbf{ZbCasePrikazy}1.dAdresy \\
  64.  
  65. \hline
  66. \textbf{ZbCasePrikazy} $\rightarrow$ ..cislo: \textbf{PrikazyCase} &commands(\textbf{ZbCasePrikazy}.dAdresy)\\&
  67. \textbf{ZbCasePrikazy}.sAdresy=\textbf{ZbCasePrikazy}.dAdresy\\
  68. \hline
  69. \textbf{ZbElse} $\rightarrow$ else \textbf{PrikazyCase} &commands(\textbf{ZbElse}.dAdresy)\\
  70. \hline
  71. \textbf{ZbElse} $\rightarrow$ $\varepsilon$ &commands(\textbf{ZbElse}.dAdresy)\\
  72. \hline
  73. \textbf{PrikazyCase} $\rightarrow$ \textbf{SlozPrikaz} & \\
  74. \hline
  75. \textbf{PrikazyCase} $\rightarrow$ \textbf{Prikaz} ; & \\
  76. \hline
  77. \end{tabular}
  78. \normalsize
  79. \clearpage
Advertisement
Add Comment
Please, Sign In to add comment