\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1} \contentsline {section}{\numberline {1.1}Overview}{1}{section.1.1} \contentsline {section}{\numberline {1.2}Motivation}{1}{section.1.2} \contentsline {section}{\numberline {1.3}Hierarchical State Machines}{1}{section.1.3} \contentsline {chapter}{\numberline {2}Hierarchical State Machine Compiler}{2}{chapter.2} \contentsline {section}{\numberline {2.1}Overview}{2}{section.2.1} \contentsline {section}{\numberline {2.2}Running the Compiler}{2}{section.2.2} \contentsline {subsection}{\numberline {2.2.1}Compiler Options}{3}{subsection.2.2.1} \contentsline {section}{\numberline {2.3}Compiler Output}{3}{section.2.3} \contentsline {subsection}{\numberline {2.3.1}Header File}{3}{subsection.2.3.1} \contentsline {subsubsection}{Event Enumeration}{4}{section*.3} \contentsline {subsubsection}{State Enumeration}{4}{section*.4} \contentsline {subsubsection}{Common Method Declaration}{5}{section*.5} \contentsline {subsubsection}{Action Method Declarations}{6}{section*.6} \contentsline {subsection}{\numberline {2.3.2}Source File}{7}{subsection.2.3.2} \contentsline {section}{\numberline {2.4}Compiler Errors}{7}{section.2.4} \contentsline {chapter}{\numberline {3}Implementing a Machine}{8}{chapter.3} \contentsline {section}{\numberline {3.1}Design}{8}{section.3.1} \contentsline {section}{\numberline {3.2}Compile}{8}{section.3.2} \contentsline {section}{\numberline {3.3}Implement}{8}{section.3.3} \contentsline {chapter}{\numberline {4}Examples}{9}{chapter.4} \contentsline {section}{\numberline {4.1}Traffic Signal}{9}{section.4.1} \contentsline {section}{\numberline {4.2}Soda Machine}{9}{section.4.2} \contentsline {chapter}{\numberline {A}Frequently Asked Questions}{10}{appendix.A} \contentsline {section}{\numberline {A.1}FAQ Category}{10}{section.A.1} \contentsline {subsection}{\numberline {A.1.1}Question number 1?}{10}{subsection.A.1.1} \contentsline {subsection}{\numberline {A.1.2}Question number 2?}{10}{subsection.A.1.2} \contentsline {chapter}{\numberline {B}HSM Language Reference}{11}{appendix.B} \contentsline {section}{\numberline {B.1}General}{11}{section.B.1} \contentsline {section}{\numberline {B.2}Lexical Elements}{11}{section.B.2} \contentsline {subsection}{\numberline {B.2.1}Character Set}{11}{subsection.B.2.1} \contentsline {subsection}{\numberline {B.2.2}Case Sensitivity}{12}{subsection.B.2.2} \contentsline {subsection}{\numberline {B.2.3}Line Format}{12}{subsection.B.2.3} \contentsline {subsection}{\numberline {B.2.4}Source Layout}{12}{subsection.B.2.4} \contentsline {subsection}{\numberline {B.2.5}Keywords}{12}{subsection.B.2.5} \contentsline {subsection}{\numberline {B.2.6}Identifiers}{13}{subsection.B.2.6} \contentsline {subsection}{\numberline {B.2.7}Numeric Literals}{13}{subsection.B.2.7} \contentsline {subsection}{\numberline {B.2.8}Reserved Words}{14}{subsection.B.2.8} \contentsline {subsection}{\numberline {B.2.9}Comments}{14}{subsection.B.2.9} \contentsline {section}{\numberline {B.3}Scope}{14}{section.B.3} \contentsline {section}{\numberline {B.4}Machines}{14}{section.B.4} \contentsline {section}{\numberline {B.5}States}{14}{section.B.5} \contentsline {section}{\numberline {B.6}Actions}{15}{section.B.6} \contentsline {subsection}{\numberline {B.6.1}Normal}{15}{subsection.B.6.1} \contentsline {subsection}{\numberline {B.6.2}Timed}{15}{subsection.B.6.2} \contentsline {subsection}{\numberline {B.6.3}Special}{15}{subsection.B.6.3} \contentsline {section}{\numberline {B.7}Transitions}{15}{section.B.7} \contentsline {subsection}{\numberline {B.7.1}Normal}{15}{subsection.B.7.1} \contentsline {subsection}{\numberline {B.7.2}Timed}{15}{subsection.B.7.2} \contentsline {subsection}{\numberline {B.7.3}Default}{15}{subsection.B.7.3} \contentsline {subsection}{\numberline {B.7.4}Termination}{15}{subsection.B.7.4} \contentsline {chapter}{\numberline {C}HSMC lex and yacc Source}{16}{appendix.C} \contentsline {section}{\numberline {C.1}lex, lexical scanner}{16}{section.C.1} \contentsline {section}{\numberline {C.2}yacc, parser}{18}{section.C.2} \contentsline {chapter}{Glossary}{21}{lstnumber.C.2.128} \contentsline {chapter}{Bibliography}{22}{appendix*.7} \contentsline {chapter}{Index}{23}{appendix*.8}