\relax \providecommand\hyper@newdestlabel[2]{} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined \global\let\oldcontentsline\contentsline \gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined \let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} \global\let\hyper@last\relax \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} \@writefile{toc}{\contentsline {section}{\numberline {1}Client Overview}{4}{section.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Launching the AToMPM Client}{4}{subsection.1.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}The Interface Components}{4}{subsection.1.2}} \@writefile{lof}{\contentsline {figure}{\numberline {1.1}{\ignorespaces The AToMPM client, with the \textit {MainMenu} and \textit {TransformationController} button toolbars loaded.\relax }}{4}{figure.caption.2}} \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} \newlabel{fig:atompm}{{1.1}{4}{The AToMPM client, with the \textit {MainMenu} and \textit {TransformationController} button toolbars loaded.\relax }{figure.caption.2}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.3}The \textit {MainMenu} Toolbar}{5}{subsection.1.3}} \newlabel{ssec:mainmenutb}{{1.3}{5}{The \textit {MainMenu} Toolbar}{subsection.1.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.4}The \textit {Utilities} Toolbar}{5}{subsection.1.4}} \newlabel{ssec:utilitiestb}{{1.4}{5}{The \textit {Utilities} Toolbar}{subsection.1.4}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.5}The Canvas}{6}{subsection.1.5}} \newlabel{ssec:canvas}{{1.5}{6}{The Canvas}{subsection.1.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Collaboration}{8}{subsection.1.6}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Tweaking Default Settings}{8}{subsection.1.7}} \newlabel{ssec:prefs}{{1.7}{8}{Tweaking Default Settings}{subsection.1.7}{}} \@writefile{toc}{\contentsline {section}{\numberline {2}Modelling}{10}{section.2}} \newlabel{sec:m}{{2}{10}{Modelling}{section.2}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Creating Button Toolbar Models}{10}{subsection.2.1}} \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces The model that defines the MainMenu button toolbar.\relax }}{10}{figure.caption.3}} \newlabel{fig:mainmenum}{{2.1}{10}{The model that defines the MainMenu button toolbar.\relax }{figure.caption.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Client API}{10}{subsection.2.2}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_compileToASMM(fname)}}{10}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_compileToCSMM(fname)}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_compileToPatternMM(fname)}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_copy()}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_exportSVG(fname)}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_getUserPreferences(callback[,subset])}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_httpReq(method,url,params,onresponse[,sync])}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_insertModel(fname)}}{11}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_loadModel(fname)}}{12}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_loadToolbar(fname)}}{12}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_openDialog(type,args,callback)}}{12}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_paste()}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_redo()}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_saveModel([fname,backup])}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_setInvisibleMetamodels(mms)}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_setUserPreferences(prefs[,callback])}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_setTypeToCreate(fulltype)}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_spawnClient(fname,callbackURL)}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_spawnHeadlessClient(context,onready,onchlog)}}{14}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_undo()}}{15}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_unloadToolbar(tb)}}{15}{section*.4}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_validate()}}{15}{section*.4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Remote API}{15}{subsection.2.3}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_highlight(args)}}{15}{section*.5}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_loadModelInNewWindow(args)}}{15}{section*.5}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_tag(args)}}{16}{section*.5}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function \_updateAttr(args)}}{16}{section*.5}} \@writefile{toc}{\contentsline {section}{\numberline {3}Specifying and Compiling Formalism Syntax Models}{17}{section.3}} \newlabel{sec:mm}{{3}{17}{Specifying and Compiling Formalism Syntax Models}{section.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Defining Abstract Syntax}{17}{subsection.3.1}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Types}{17}{subsubsection.3.1.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Defining Concrete Syntax}{17}{subsection.3.2}} \newlabel{fig:forestMM}{{3.1a}{18}{Subfigure 3.1a}{subfigure.3.1.1}{}} \newlabel{sub@fig:forestMM}{{(a)}{a}{Subfigure 3.1a\relax }{subfigure.3.1.1}{}} \newlabel{fig:forestCSMM1}{{3.1b}{18}{Subfigure 3.1b}{subfigure.3.1.2}{}} \newlabel{sub@fig:forestCSMM1}{{(b)}{b}{Subfigure 3.1b\relax }{subfigure.3.1.2}{}} \newlabel{fig:forestCSMM2}{{3.1c}{18}{Subfigure 3.1c}{subfigure.3.1.3}{}} \newlabel{sub@fig:forestCSMM2}{{(c)}{c}{Subfigure 3.1c\relax }{subfigure.3.1.3}{}} \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces (a) A very simple abstract syntax model and (b-c) two associated concrete syntax (or icon definition) models.\relax }}{18}{figure.caption.6}} \newlabel{fig:forestMM+CSMMs}{{3.1}{18}{(a) A very simple abstract syntax model and (b-c) two associated concrete syntax (or icon definition) models.\relax }{figure.caption.6}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {}}}{18}{subfigure.1.1}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {}}}{18}{subfigure.1.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {}}}{18}{subfigure.1.3}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Meta-Modelling API}{19}{subsection.3.3}} \newlabel{ssec:mmmkapi}{{3.3}{19}{Meta-Modelling API}{subsection.3.3}{}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function getAttr(\_attr[,\_id])}}{19}{section*.7}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function getAllNodes([\_fulltypes])}}{19}{section*.7}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function getNeighbors(\_dir[,\_type,\_id])}}{19}{section*.7}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function hasAttr(\_attr[,\_id])}}{19}{section*.7}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function print(str)}}{19}{section*.7}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function setAttr(\_attr,\_val[,\_id])}}{20}{section*.7}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}The \textit {CompileMenu} Toolbar}{20}{subsection.3.4}} \newlabel{ssec:compiletb}{{3.4}{20}{The \textit {CompileMenu} Toolbar}{subsection.3.4}{}} \@writefile{toc}{\contentsline {section}{\numberline {4}Specifying and Executing Model Transformations}{21}{section.4}} \newlabel{sec:mt}{{4}{21}{Specifying and Executing Model Transformations}{section.4}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Specifying Transformation Rule Models}{21}{subsection.4.1}} \newlabel{ssec:trmm}{{4.1}{21}{Specifying Transformation Rule Models}{subsection.4.1}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Specifying Transformation Models}{21}{subsection.4.2}} \newlabel{ssec:tmm}{{4.2}{21}{Specifying Transformation Models}{subsection.4.2}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Transformation Rule API}{22}{subsection.4.3}} \newlabel{ssec:trapi}{{4.3}{22}{Transformation Rule API}{subsection.4.3}{}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function getAttr(\_attr[,\_id])}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function getAllNodes([\_fulltypes])}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function getNeighbors(\_dir[,\_type,\_id])}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function hasAttr(\_attr[,\_id])}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function print(str)}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function setAttr(\_attr,\_val[,\_id])}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function httpReq(method,host,url,data)}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function isConnectionType(\_id)}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function session\_get(\_key)}}{22}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function session\_put(\_key,\_val)}}{23}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function sys\_call(\_args)}}{23}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function sys\_mkdir(\_path)}}{23}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function sys\_readf(\_path)}}{23}{section*.8}} \@writefile{toc}{\contentsline {subsubsection}{\hskip 1em\relax \texttt {function sys\_writef(\_path,\_content[,\_append])}}{23}{section*.8}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.4}The \textit {TransformationController} Toolbar}{23}{subsection.4.4}} \newlabel{ssec:transfctrltb}{{4.4}{23}{The \textit {TransformationController} Toolbar}{subsection.4.4}{}} \@writefile{toc}{\contentsline {section}{\numberline {5}Extending AToMPM \textit {(To be completed) }}{24}{section.5}} \@writefile{toc}{\contentsline {section}{\numberline {A}Setting up the AToMPM back-end}{25}{appendix.A}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.1}Installation}{25}{subsection.A.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.2}Launch}{25}{subsection.A.2}}