Home
ASF+SDF Meta-Environment: Guided Tour Revision : 1.16
Contents
1. Figure 26 Main window of ASF SDF Meta Environment with the parsetree panel activated showing a more detailed version of the parsetree Emors nfo Log 26 May 07 45 50 42 done fas 26 May 07 45 50 42 Opening basic Bytes 26 May 07 45 50 42 done 26 May 07 45 50 42 Opening basic BytesCon 26 May 07 45 51 42 done 26 May 07 45 51 42 done Figure 27 The Log message tab of ASF SDF Meta Environment after loading the module Pico syntax 5 1 Log Message Tab The Log message tab see Figure 27 logs all status information decorated with a time stamp Via the eraser button in the user interface or the Clear Info and Log button in the Tools pull down menu this tab can be cleared 5 2 Info Message Tab The Info message tab see Figure 28 shows more general information related to the specification being processed Via the eraser button in the user interface or the Clear Info and Log buttoninthe Tools pull down menu this tab can be cleared 5 3 Error Message Tab The warnings and errors are displayed in the Error message tab see Figure 29 The messages in this tab are clickable clicking on the message will invoke the corresponding editor and the cursor will be position on the source of the error message The messages shown here can only be removed by fixing the cause of the warning or error There are various categories of messages that will be displayed via Error tab 19
2. An editor for editing the equations section of a module is activated via the button Edit Equations in the pop menu in the Import Pane Section 3 4 1 in the Module Pane Section 3 4 2 or via a syntax or term editor An example is shown in FigureB3 The entry Parse in the Actions menu of the editor activates the parser for the equations It is possible that in order to parse the equations a parse table must first be generated This is visible through the status message Generating parsetable lt ModuleName gt When pushing the parse button the text will be saved first and then parsed 4 3 Editing Terms An editor for editing a term over a module is activated via the button Edit Term in the pop menu in the Import Pane Section 3 4 1 in the Module Pane Section 3 4 2 or via a syntax or equation editor An example is shown here in FigureB4 17 kd Meta Environment declare ID TYPE PICO ID TYPE gt ID TYPE PICO ID TYPE gt ID TYPE Figure 25 Main window of ASF SDF Meta Environment with the parsetree panel activated The entry Parse in the Actions menu of the editor activate the parser for this term It is possible that in order to parse the term a parse table must be generated This is visible through the status message Generating parsetable lt ModuleName gt The parse action again involves saving of the text T
3. Errors Info Log 26 May 07 49 22 Module Pico typecheck has not changed parsing and checking not done Figure 28 The Info message tab of ASF SDF Meta Environment after dumping the equations Errors info Log undeclared sorts in languages pico syntax Pico Syntax EXP undeclared sorts in Pico typecheck EXP Parse error character t unexpected Figure 29 The Error message tab of ASF SDF Meta Environment 1 Parse errors 2 SDF type check warnings 3 SDF type check errors 4 ASF type check errors We will enumerate the warning error messages The exact cause and how to fix such a warning or error is discussed in the reference manual 5 4 Parse Errors There are three different types of parse errors 1 A syntax error which is reported by pinpointing the exact location in the file and the message Parse error near cursor in case of an editor or in the message pane an error message similar to Parse error character lt c gt unexpected This means that the parser detected a syntax error in the text to be parsed and can not proceed its parsing process Clicking on the error in the Errors pane moves the cursor to the exact error location and launches if needed the editor A variant of the syntax error message is Parse error eof unexpected A cycle in case of an editor the cursor is positioned at the position where the first cycle is detected in the input and the message is Cycle l
4. Figure 3 Part of the main window showing the imports and imported by folders e The module pane a vertical list either empty in Figure or containing names like Pi co syntax basic Booleans in Figure at the left part in the middle of the window that shows the names of all modules in the current specification The module pane is described in Section 3 4 2 e Below the module pane shows rectangle which will show the import relations of a selected module This is shown via two folders imports showing the list of modules the selected module imports imported by showing the list of modules that import the selected module If no module is selected this part remains empty By clicking on one of these shows the list of imports or imported modules These folders are very convenient when processing a big specification e Below the module panel three panels are showns Errors Info and Log The Errors panel will be used for displaying warnings and error messages The messages shown in this panel are clickable and will invoke the editors in which the warning or error is found The Jnfo panel shows general information derived during processing a specification The Log panel shows all information which is also shown in the status bar see below The Info and Log panels can be cleared via the Clear History button in the main window e A status bar at the bottom of the window that shows the current activity of the system Examples are
5. 0X File Edit Options Buffers Tools Actions Move Help Coxo gr oT QIZ I true amp falsel true A term trm Fondamental LI ALl 55555 aa ase asasas5555 JY Focus symbol lt ambiguous gt Figure 37 Term editor with an ambiguous boolean term 7 3 3 Modifying Booleans The ASF SDF Meta Environment is an incremental environment generator After each edit operation on a module its implementation i e scanner parser and term rewriting system is updated immediately The editing of both the syntax section and the equations section of a module is syntax directed like the editing of terms in a term editor Modifying the Equations The equations section of a module begins with the keyword equations and is saved in files ending on asf e Click in the equation section to investigate the focus behavior e Change the equations for instance replace in equation B1 the last part true by fals e Study the effect on the reduction of terms in the term editor Modifying the Syntax The syntax part of a module starts with the keyword module and is saved in files ending on sdf Modifying the syntax causes the generated scanner and parser to be adapted After each edit operation in the SDF section that is followed by a parse of the SDF section the focus in both the equations section and the term editor is extended to completely contain the text in these editors Modify
6. Search paths can be initialized by creating a file meta conf in the directory from which the meta command is initiated This file may contain a list of absolute and or relative path names each on a separate line that will be searched when opening modules For instance in the pico directory see the Guided Tour Section Z you will find an example meta conf file which only contains the path i e only the current directory will be searched 3 The Main Window The main window of the ASF SDF Meta Environment immediately after starting the system was already shown Figure After loading a specification it may look as shown in Figure The main window consists of the following parts e At the top of the window is a menu bar that contains the following menu File for opening a library module opening an existing module creating of a new module closing a specification and exiting the ASF SDF Meta Environment The File menu is described in SectionB 1 x Cache for loading a saved term store and saving the current term store The Cache menu is described in SectionB 2 Tools for clearing the info and log panel and refreshing of buttons The Tools menu is described in SectionB 3 d ToolBus Viewer home markvdb glt asf sdf meta_1 5 install share meta term store idef Options Term alue term StrValue str ContainsKey bool Keys list Values list ValueT
7. e Study other modules in the specification The modules Pico typecheck and Pico eval are explained in the next sections e Add a repeat statement repeat STATEMENT until EXP to Pico syntax add typecheck equations to Pico typecheck and eval equations to Pico eval for this new state ment e Add your own module to the specification e Make your own specification Create a new directory for each specification 7 4 4 Module Pico typecheck e Open an editor for the syntax of Pico typecheck The function tcp is defined for typechecking Pico programs Variants of this function exist for type checking various parts of a Pico program The typechecking of the declarations yields a type environment a table of identifiers and their types This type environment and the lookup function is specified in the module Type environments The typechecking of statements uses a type environment and yields a Boolean value e Open an editor for the equations of Pico typecheck The equations define how a Pico program is typechecked Equation Tc1 says that the typechecking of a program is true if the typechecking of the Series in the type environments tcd Decls is true Equations Tc2 Tc3a Tc3b Tc4a Tc4b specify how a type environment is con structed when the declarations are typechecked Equations Tc5a and Tc5b specify the typechecking of a possibly empty list of statements
8. 33 7 4 6 Module Pico compile e Open an editor for the syntax of Pico compile The functions trp and variants are defined for compiling Pico into a stack machine based assembler The result of evaluation is a list of assembler instructions e Open an editor for the equations of Pico compile The equations define how a program is compiled Equation Tr1 says that the compilation of a program is the compilation of the Dec1s concatenated with the instructions resulted from the compilation of the Series Equations Tr2 thorugh Tr3c specify how the translation of the declarations is performed Iden tifiers Id of type natural result in the instruction dclnat Id Identifiers of type string result in the instruction dclstr Id Equations Tr4a and Tr 4b specify the compilation of a possibly empty list of statements Equa tions Tr5a through Tr5e specify how the three kinds of statements are translated During the trans lation process a variable Label is used which contains the last used label and which is updated via the function next label The labels are used to direct the flow of control in case of the conditional and while loop The rest of the equations deal with the translation of expressions References 1 J A Bergstra J Heering and P Klint editors Algebraic Specification ACM Press Addison Wesley 1989 2 J A Bergstra and P Klint The discrete time ToolBus a software coordination
9. Rewriting and Compilation 10 6 18 11 7 ToolBus 2 ATerms B Applications 5 16 15 Generic debugging BT Traversal functions 12 13 User manuals 20 29 D Acknowledgements Peter D Mosses Albert Hofkamp Akim Demaille Jurgen Vinju kd Meta Environment ENE SEE ELC O S ee J Figure 1 Main window of ASF SDF Meta Environment 2 Starting the System The ASF SDF Meta Environment can be invoked via the command meta As a result the ASF SDF Meta Environment main window pops up This is shown in Figure I The meta command has the following options which may come in handy later on Note the meta command delegates the actual invocation of the ASF SDF Meta Environmentto the command generic meta this means that a number of option described below are not relevant for meta As a novice user you may want to skip the remainder of this section and continue with the description of the Main Window Sec tionB C filespecifies the configuration file to be used in the default case the configuration file meta conf is used I dir specifies the location of extra ToolBus scripts d starts the ASF SDF Meta Environment in debug mode As a result an interactive viewer will be started that allows the study of the internal behaviour of the system the so called ToolBus viewer This viewer is shown in Figure p
10. 33 J Rekers Parser Generation for Interactive Environments PhD thesis University of Amsterdam 1992 34 J Rekers and W Koorn Substring parsing for arbitrary context free grammars SIGPLAN Notices 26 5 59 66 1991 35 E Visser Syntax Definition for Language Prototyping PhD thesis University of Amsterdam 1997 36
11. false amp true e Parse the term using the Parse button e Try to find out how this term has been parsed by clicking on different parts of the term and studying the resulting focus The left attribute in the SDF definition indicates that the amp operator is left associative The term will thus be parsed as true amp false amp true Clicking on the left or right amp yields a focus that corresponds with this parse e Erase the term in your term window and type anew term true false amp true e Parse the term using the Parse button e Try to find out how this term has been parsed by clicking on various parts of the term and studying the resulting focus The context free priorities definitions in the SDF definition state that the amp operator binds stronger than the operator e Erase the term in the term editor and type a new term true amp false Click on false so that the focus is around false only Then add true after false so that the resulting term is true amp false true e Parse the term e Click on the amp symbol Is this what you wanted Probably not To resolve a priority conflict and which are defined as brackets in the SDF definition are put around the term false true Thus true amp false true is more likely to express what you intended 28 x emacs localhost localdomain lt 3 gt
12. idle the system is doing nothing parsing the system is performing a syntactic analysis of some module or term and rewriting the system is rewriting a term 3 1 The File menu The File menu is used for creating opening and saving specifications as well as for quitting the ASF SDF Meta Environment It is shown in Figure 5 About loads a module which contains version information and a number of links to web pages with more detailed information on the Meta Environment Open Library Module is used for opening a predefined ASF SDF module A dialog window see Figure 6 appears ASF SDF library modules see Section 6 are very convenient when developing a specification It provides a number of predefined basic data structures and grammars New Module and Open Module are used for creating a new module and opening an existing one respectively In case of New Module a dialog window Figure Z appears In case of Open Module a dialog window Figure 8 appears Close A11 removes all modules from the Meta Environment If modules have been modified you are explicitly asked to save them The same effect can be achieved by exiting the Meta Environment using Quit see below and starting a new version of the Meta Environment using the met a command Refresh Buttons reloads the file meta buttons if available which contains a description of which buttons have to be added to which term editors Exit ends the execution of the ASF SDF Meta Environme
13. E E eet 24 7 3 1 The Module Editor for Booleans aoaaa a ee 24 a be te eee ee a ene 27 ny eee ee ee re ene eee ee 29 7 4 The Pico Specification 2 ee 30 7 4 1 The Module Editor for Pico Syntax 2 ee ee 31 a hs oa ee ee FE EEE 31 7 4 More Exercises to Study the Pico Specification 33 Se A eee Be AS 33 7 4 Module Pico eyall oa aaa a 33 7 4 6 __ Module Pico compile oo eee 34 section Update with respect to previous version e Separated the guided tour and the ASF SDF user manual e Synchronized the screen dumps with the newest version of the ASF SDF Meta Environment ver sion 1 5 1 Overview 1 1 When to use the ASF SDF Meta Environment The ASF SDF Meta Environment is an interactive development environment for the automatic generation of interactive systems for manipulating programs specifications or other texts written in a formal language The generation process is controlled by a definition of the target language which typically includes such features as syntax pretty printing type checking and execution of programs in the target language The ASF SDF Meta Environment can help you if e You have to write a formal specification for some problem and you need interactive support to do this e You have developed your own application language and want to create an interactive environment for it e You have programs in some existing programming language and you want to ana
14. Equations Tc6a through default Tc6 specify how the three kinds of Statements are typechecked using the information from the type environment The rest of the equations deal with the typechecking of expressions 7 4 5 Module Pico eval e Open an editor for the syntax of Pico eval The functions evp and variants are defined for describing the dynamic semantics of Pico The result of evaluation is a value environment a table of identifiers and values with the final values of the declared identifiers Note that Pico does not have an output statement e Open an editor for the equations of Pico eval The equations define how a program is evaluated Equation Ev1 says that the evaluation of a pro gram is the evaluation of the Series in the value environments evs Decls Equations Ev2 thorugh Ev3c specify how a value environment is constructed when the decla rations are evaluated Identifiers of type natural get value 0 Identifiers of type string get value the empty string Equations Ev4a and Ev4b specify the evaluation of a possibly empty list of statements Equa tions Ev5a through Ev5e specify how the three kinds of statements are evaluated using the infor mation from the value environment Evaluating statements means updating the value environment The rest of the equations deal with the evaluation of expressions Evaluating an expression results in a value
15. architecture Science of Computer Programming 31 2 3 205 229 July 1998 3 M G J van den Brand T Kuipers L Moonen and P Olivier Implementation of a prototype for the new ASF SDF meta environment In Proceedings of the 2nd International Workshop on the Theory and Practice of Algebraic Specifications Electronic Workshops in Computing Springer 1997 4 M G J van den Brand A van Deursen Jan Heering H A de Jong M de Jonge T Kuipers P Klint L Moonen P Olivier J Scheerder J Vinju E Visser and J Visser The ASF SDF meta environment a component based language development environment In R Wilhelm editor Compiler Construction 2001 CC 2001 LNCS pages 365 370 Springer 2001 5 M G J van den Brand A van Deursen P Klint S Klusener and E A van den Meulen Industrial applications of ASF SDF In M Wirsing and M Nivat editors Algebraic Methodology and Software Technology AMAST 96 volume 1101 of LNCS Springer Verlag 1996 6 M G J van den Brand J Heering P Klint and P Olivier Compiling language definitions The asf sdf compiler July 2000 See CoRR E print Server cs PL 0007008 7 M G J van den Brand J Heering P Klint and P A Olivier Compiling language definitions The asf sdf compiler ACM Transactions on Programming Languages and Systems 24 4 334 368 2002 8 M G J van den Brand H A de Jong P Klint and P Olivier Efficient Annotated Terms Software Practic
16. e use the Emacs editor this is the default editor g use the gvim editor the support for this editor is in an experimental stage and will not be discussed in this guided tour h shows help information for the met a command m modulename starts the Meta Environment and the module with the name modulename is au tomatically opened o file this option only works for the command line tools when dumping parse tables or equa tions e p path adds a new search path to the list of search paths obtained from meta conf in the Meta Environment e r fileuses the given file as term store The term store is normally saved under the name of meta termstore e s saves the term store to disk this option only works for the command line tools when dumping parse tables or equations e S file executes the given tb script file e t int the Meta Environment will abort after int seconds e T port controls the communication ports that will be used for communication between the com ponents of the ASF SDF Meta Environment Note that these ports are also controlled by the envi ronment variable TB_PORT The default value is 8999 but this port may be in use by someone else or by an aborted previous run of the ASF SDF Meta Environment In that case it is advisable to use other values in the range 9000 and up e vruns the ASF SDF Meta Environment in verbose mode e V shows the version number of the ASF SDF Meta Environment you are running
17. of the various entries is discussed in the module menu see Section 3 4 2 The Module Pane The import pane is particularly useful when you want to understand the overall structure of a specification but it may become unwieldy for very large specifications For large specifications the module pane may give you quicker access to the modules in the specification It presents a vertical scrollable tree like view of all the modules in the specification The main purpose of the module pane is to select a module from the specification on which an oper ation from the button pane Section is to be performed One module is selected by clicking on the corresponding module name in the module pane Figure 14 Ruler in the import pane Syntax Equations Term New Term Figure 15 Pop up menu for invoking various editors for a module After making the selection an operation can be performed on all the selected module by pushing a button from the button pane For instance pushing the Edit Syntax button will create editors for the syntax of all the selected modules The import pane can be manually resized via the ruler on left of the import pane or automatically by clicking on the Z at the top of the ruler 3 4 3 The Module Menu First a module can be selected via the import or module pane Next one of the following operations can be applied to it Edit Check Exports Tools Refactor Close and Reopen Edit By clicking o
18. the Pico language to its single argument a complete Pico program The result is true or false depending on whether the Pico program is properly typed e All equations of Pico typecheck and its imported modules are being compiled e The term fac pico with the function tcp is reduced using the equations of Pico typecheck e The same effect can be achieved by opening a term editor over the module Pico typecheck and choose for instance the term fac ptc and push the Reduce button in this launched term editor Typechecking a term for the second time is notably faster the modules have been added already and the equations have been compiled e Verify this by pushing TypeCheck button in fac pico once more e Make some modifications to fac pico in the term editor Typecheck the modified program e Open term editors with other pico programs small pico big pico or create your own program Typecheck these programs The evaluation of Pico programs is achieved in a similar fashion by pushing the Evaluate button The evaluation rules are defined in the module Pico eval Applications of the evaluation function evp can be found in small pev fac pev and big pev e Repeat the steps described above for typechecking now for the evaluation of Pico programs The same can be done once again for code generation via the button Compile 32 7 4 3 More Exercises to Study the Pico Specification
19. the SDF parser to the complete text buffer Check for activating the sdf checker in order to check the well formedness of the SDF speci fication Edit Equations to invoke the corresponding equation editor Edit Term to invoke a term editor Run Tests to run the corresponding unit tests defined for this module The equation editor specific buttons are Parse for parsing the complete text buffer using the underlying SDF definition Check for activating the asf checker in order to check the well formedness of the ASF speci fication for instance it is checked whether there are any uninstantiated variables in the right hand side of an equation View Tree for displaying the parse tree of the focus in the parse tree panel Figure 25 View Full Tree for displaying the parse tree of the focus in the parse tree panel Fig ure 26 In this case all individual characters are also shown This feature is extremely useful when trying to find an ambiguity on the lexical level 15 Parse Check Edit Equations Edit Term Run Tests Figure 21 Act ions menu syntax editor Parse Check View Tree View Full Tree Edit Syntax Edit Term Run Tests Figure 22 Act ions menu equations editor Edit Syntax to invoke the corresponding syntax editor Edit Term to invoke a term editor Run Tests to run the corresponding unit tests defined for this module e The Move pull do
20. to delete a module not only in the import pane but also on disk The import sections of the modules importing the deleted module are updated as well The Rename allows you to rename a module and the renaming is also performed in the import sections of the modules importing the renamed module The Add Import allows you to create a new import relation between 2 modules The Remove Import allows you to cancel an import relation between 2 modules Close This action removes a module from the specification This action has only effect of the module is not imported by other modules If the module imports other modules the user can decide to recursively close all imported modules as well This can be done via Select an Option window see Figure BO Reopen This entry allows you to revert this specific module from disk 4 Editing Specifications The editors used to create and modify specifications and terms are based on Emacs so some familiarity with this editor is assumed In this guided tour we restrict ourselves to the Emacs editors But it is also possible to use GVim The various pull down menus Actions Move and Upgrade have been added to the standard user interface of Emacs depending on the editor type e The Action menu for syntax and equation editors contains syntax specific buttons Figure PI and equation specific buttons Figure 22 respectively The syntax editor specific buttons are Parse for applying
21. ASF SDE Meta Environment Guided Tour Revision 1 16 M G J van den Brand and P Klint Centrum voor Wiskunde en Informatica CWT Kruislaan 413 1098 SJ Amsterdam The Netherlands 20th September 2004 Abstract This is the guided tour for the ASF SDF Meta Environment Release 1 5 The purpose of this document is to give a brief introduction in using the ASF SDF Meta Envir onment Details on writing ASF SDF specifications are not discussed in this guided tour but in the ASF SDF user manual This is guided tour is under permanent construction Some images 2001 2002 www arttoday com Contents 3_ The Main Windo 3 1 The Filemenu 2 The Cache menu The Tools men 3 4 The Panes of the Main Windo 3 4 1 The Import Pane A The Module Men 4 Editing Specifications 4 1 Editing the Syntax Part of a Module 4 2 Editing the Equations Section of a Module 4 Editing Term DDd JE c DS 5 1 Log Message Tabl aonana F Error Message Tab 4 Parse Error AAUUNRN Wn Type check warnings for plain SD 5 6 Type check errors for plain SDH aaa a 21 a e e E aul Ae ey gies a 21 ea ek ee ee oe ee es 22 a baba BS oe cee eee aa eae eee 22 a a Bo wd ted OR a BB 22 6 b Sl 23 23 7 1 Before you start the Guided Tour o os a a a a e a 23 Cate ale ho bade a eae 23 phe Se ae tose penne EB Aree te sate eos WA ene
22. Environment will appear as shown in Figure 23 kd Meta Environm Oe tats UR ent Modules G Booleans basic Whitespace e Add the module Figure 30 Main window after opening Booleans Booleans by selecting the File menu and choosing the Open Module button In a dialog window the system asks you to give the name of the module to be opened It presents a list of all files with extension sdf Click once on Booleans sdf and then push the Open Module button This will load the module Booleans both its syntax and equations into the system e Verify that module Booleans appears as a rectangle in the import pane as well as in the module pane of the main window as shown in Figure BO 7 3 The Module Booleans One of the simplest specifications possible and therefore frequently used as an example is the datatype of the Boolean values It defines the constants true and false and the functions and and or written in infix notation using the left associative operators amp and respectively and not written in prefix notation using the function symbol not The specification is shown in Figure BI 7 3 1 The Module Editor for Booleans e Select module B Booleans and e Push the button ooleans from the module pane the vertical list of module names that now contains basic Whitespace by clicking on it once Edit Syntax i
23. age PICO It follows the user interface to explain the capabilities of the system Topics that will be addressed include e How to start the system and exit it e How to create open and save a specification How to edit the syntax and or equations part of a module e How to edit a term How to evaluate a term e How to compile a specification e How to parse a term outside the ASF SDF Meta Environment e How to rewrite a term using a compiled specification outside the ASF SDF Meta Environment e How to unparse parsed and or normalized terms We do not explain in detail e The formalism ASF SDF see the ASF SDF reference manual e The architecture and implementation of the system e The stand alone usage of various parts of the system 1 4 Downloading the ASF SDF Meta Environment You can download the ASF SDF Meta Environment from the following location http www cwi nl projects MetaEnv It provides links to the software as well as to related documents Furthermore via this link bugs can be submitted 1 5 Further Reading There are many publications about the ASF SDF Meta Environment itself about the implementation tech niques used and about applications We give here a brief overview of selected publications Overviews BA Bol B 4 General ideas 25 26 22 ASF i SDF 23 35 ASF SDF i BI Parser generation and parsing 32 271 BA 33 35 D D4 Pretty printing 19 28
24. and Applications ENTCS 2000 16 M G J van den Brand and J Scheerder Development of Parsing Tools for CASL using Generic Language Technology In D Bert C Choppy and P Mosses editors Workshop on Algebraic Devel opment Techniques WADT 99 volume 1827 of LNCS Springer Verlag 2000 17 M G J van den Brand J Scheerder J J Vinju and E Visser Disambiguation Filters for Scannerless Generalized LR Parsers In N Horspool editor Compiler Construction CC 2002 volume 2304 of Lecture Notes in Computer Science pages 143 158 Springer Verlag 2002 18 M G J van den Brand and J Vinju Rewriting with layout In Workshop on Rule based Programming PLI2000 2000 19 M G J van den Brand and E Visser Generation of formatters for context free languages ACM Transactions on Software Engineering and Methodology 5 1 41 1996 20 H de Jong and P Olivier ATerm Library User Manual 21 A van Deursen J Heering and P Klint editors Language Prototyping An Algebraic Specification Approach volume 5 of AMAST Series in Computing World Scientific 1996 22 J Heering Application software domain specific languages and language design assistants May 2000 see CoRR E print Server cs PL 0005002 23 J Heering P R H Hendriks P Klint and J Rekers The syntax definition formalism SDF reference manual SIGPLAN Notices 24 11 43 75 1989 24 J Heering G Kahn P Klint and B Lang Generation of int
25. e amp Experience 30 259 291 2000 9 M G J van den Brand and P Klint ASF SDF Meta Environment User Manual 10 M G J van den Brand P Klint and P A Olivier Compilation and memory management for ASF SDF In S Ja hnichen editor Compiler Construction CC 99 volume 1575 of Lecture Notes in Computer Science pages 198 213 Springer Verlag 1999 34 11 M G J van den Brand P Klint and J Vinju Term rewriting with traversal functions To appear 12 M G J van den Brand P Klint and J J Vinju Term rewriting with type safe traversal functions In B Gramlich and S Lucas editors Second International Workshop on Reduction Strategies in Rewriting and Programming WRS 2002 volume 70 of Electronic Notes in Theoretical Computer Science Elsevier Science Publishers 2002 13 M G J van den Brand P Klint and J J Vinju Term rewriting with traversal functions ACM Trans actions on Software Engineering and Methodology 2003 to appear 14 sy M G J van den Brand A S Klusener L Moonen and J J Vinju Generalized parsing and term rewriting semantics directed disambiguation In B Bryant and J Saraiva editors Third Workshop on Language Descriptions Tools and Applications LDTA 2003 Electronic Notes in Theoretical Computer Science Elsevier Science Publishers 2003 15 M G J van den Brand and C Ringeissen ASF SDF parsing tools applied to ELAN In Third International Workshop on Rewriting Logic
26. e 9 Cache menu main window 10 v 5 Look In C pico Mi al l a g Cicvs test File Name Files of Type termstore Sd Open Cancel Figure 10 Dialog for loading a termstore Cache menu v Ciim Save In C pico 7 ca E E BB 2z Cicvs test File Name Files of Type termstore v Save Cancel Figure 11 Dialog for saving a termstore Cache menu 3 2 The Cache menu The Cache menu is used for loading and saving the term store in the ASF SDF Meta Environment It is shown in Figure D Load Term Store reads a previously saved term store and replaces initializes the term store The termstore can be selected via the dialog window Figure 1Q Save Term Store saves the internal term store to disk All information available in the interal term store is saved to disk among others generated parse tables parsed equations derived import rela tions Using the term store when re starting the system leads to a speed up because saved parse tables etc need not be regenerated The name of the saved termstore can be selected or entered via the dialog window Figure L1 3 3 The Tools menu The Tools menu is used for clearing the Info and Log panels of the ASF SDF Meta Environment and for reloading the meta buttons file It is shown in Figure 2 11 Clear Info and Log Reload meta buttons Figure 12 Tools m
27. enu main window r Edit gt Check gt Export gt Tools gt Refactor gt Close Reopen Figure 13 Pop up menu for module operations import pane 3 4 The Panes of the Main Window The two panes below the icons of the main window give two alternative views on the ASF SDF specifi cation that has been loaded into the Meta Environment In the rightmost pane Import Pane you see the import graph in the left most pane Module Pane you see the module tree Using one of these views the same set of operations is available via a pop up menu 3 4 1 The Import Pane The pane with the name import gives a graphical view of the specification by displaying the import relation between modules in the form of a graph A module M imports another module M if M contains an import statement of the form imports M Each module is represented by a rectangle An arrow between two rectangles represents an import relation between the two corresponding modules The import pane has the following interaction facilities Different parts of the import graph can be displayed by using the horizontal or vertical scrollbar at the right and at the bottom of the import pane The import graph can be scaled using the 100 icon By clicking and holding the one mouse button outside any module the import graph can be dragged across the import pane Clicking on a module yields a pop up menu as shown in Figure 3 The functionality
28. eractive programming environments In ESPRIT 85 Status Report of Continuing Work pages 467 477 North Holland 1986 Part I 25 J Heering and P Klint Towards monolingual programming environments ACM Transactions on Programming Languages and Systems 7 2 183 213 1985 26 J Heering and P Klint Semantics of programming languages A tool oriented approach ACM SIGPLAN Notices March 2000 also ACM CoRR E print Server xxx lanl gov abs cs PL 9911001 27 J Heering P Klint and J Rekers Incremental generation of parsers IEEE Transactions on Software Engineering 16 12 1344 1351 1990 Also in SIGPLAN Notices 24 7 179 191 1989 28 M de Jonge A pretty printer for every occasion In I Ferguson J Gray and L Scott edi tors Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools CoSET2000 University of Wollongong Australia 2000 29 P Klint A Guide to ToolBus Programming Included in ToolBus distribution 35 30 P Klint A meta environment for generating programming environments ACM Transactions on Software Engineering and Methodology 2 176 201 1993 31 P A Olivier A Framework for Debugging Heterogeneous Applications PhD thesis University of Amsterdam 2000 32 J Rekers A parser generator for finitely ambiguous context free grammars In Conference Proceed ings of Computing Science in the Netherlands CSN 87 pages 69 86 Amsterdam 1987 SION
29. he entry Reduce in the Actions menu of the editor activates the evaluatot The term is reduced given the specified equations if any In order to reduce the term it may be necessary to parse the equations of various modules and to initialize the evaluator with this set of equations Note that clicking on the reduce button does not always imply saving and parsing the text When you have created a term using a term editor see Section you can reduce it by selecting the Reduce entry from the Act ions menu of the term editor As a result rewrite rules will be applied until a normal form is reached a term for which no applicable rule can be found This normal form is the result of the execution and is displayed in a new term window The entry View Tree and View Full Tree ini the Actions menu of the term editor displays the parse tree of the focus if any The parse tree will be shown in the parset ree panel see Figure 25Jor parsetree panel see Figure 26 5 Message Tabs There are three different message tabs 1 Errors 2 Info 3 Log We will also use interpreter rewriter or reducer instead of evaluator and equivalently we use interpreting rewriting reducing or evaluating of a term respectively 18 kd Meta Environment ID 1D TYPE gt lt START gt gt lt START gt eee PICO ID TYPE gt ID TYPE LAYOUT lt PICO ID LEX gt gt Pee aa ID natural gt TYPE
30. ing the context free syntax e Change the syntax of the defined functions E g replace not by negation e Try to re parse the equations Modifying the priorities e Remove the priority declaration e Type the term true amp false true in the term editor or anything similar according to your current syntax Parse this term In the error pane of the user interface a message will be printed which indicates that the parse contained 1 ambiguity Clicking in the term editor window see FigureB7 will result in a focussed symbol lt ambiguous gt Viewing the corresponding parse tree via View Full Tree in the menu Actions will give the parsetree panel see FigureB8 e Add the priority declarations again The effect of removing the LAYOUT definition e Remove import of basic Whitespace e Try parsing equations of Booleans 29 Meta Environment File Cache Tools Bool gt lt START gt Bool Bool gt Bool left Bool amp Bool gt Bool left true gt Bool Bool amp Bool gt Bool left true gt Bool Bool Bool gt Bool left false gt Bool true gt Bool true gt Bool false gt Bool Bool gt Bool left Bool amp Bool gt Bool left Figure 38 Main window with an ambiguous tree in the parse tree panel F
31. it Syntax to invoke the corresponding syntax editor Edit Equations to invoke the corresponding equation editor 4 1 Editing the Syntax Part of a Module An editor for editing the syntax part of a module can be activated by pressing the Edit Syntax button of the pop menu in the Import Pane Section 3 4 1 in the Module Pane Section 3 4 2 or via an equation or term editor An example is shown in FigureB2 Initially the text is not highlighted but the text has already been parsed Click at an arbitrary place you will see that part of the text will be highlighted this is what we will call the focus and the message Focus symbol lt SORT gt appears in the status line at the bottom of the main window where lt SORT gt will be the non terminal sort of the focus Via the entry Parse in the Actions menu of the editor the parser can be activated The parser is finished when the status line in the main window displays Idle again Note when parsing a large term it may take some time for the editor to be active again If the parse was successful the bottom line in the Emacs window displays the message Focus sort None If the term contains an error the cursor is located at the position where the error was detected and the bottom line in the Emacs window displays the message Parse error near cursor When pushing the parse button the text will be saved first and then parsed 4 2 Editing the Equations Section of a Module
32. lyze or transform them The ASF SDF formalism allows the definition of syntactic as well as semantic aspects of a program ming language It can be used for the definition of languages for programming for writing specifications for querying databases for text processing or for dedicated applications In addition it can be used for the formal specification of a wide variety of problems ASF SDF provides you with e A general purpose algebraic specification formalism based on equational logic e Modular structuring of specifications e Integrated definition of lexical context free and abstract syntax e User defined syntax allowing you to write specifications using your own notation e Complete integration of the definition of syntax and semantics The ASF SDF Meta Environment offers e Syntax directed editing of ASF SDF specifications e Testing of specifications by means of interpretation e Compilation of ASF SDF specifications into dedicated interactive environments containing various tools such as a parser a pretty printer a syntax directed editor a debugger and an interpreter or compiler The advantages of creating interactive environments in this way are twofold e Increased uniformity Similar tools for different languages often suffer from a lack of uniformity Generating tools from language definitions will result in a large increase in uniformity with corre sponding benefits for the user e Reduced implementatio
33. n Edit a pop up menu as shown in Figure 15 Syntax Equations and Term activate structure editors for editing syntax equations or terms respectively New Term enables the creation of a new file to be edited Edit By clicking on Check a pop up menu as shown in Figure 16 Via the Syntax entry it is possible to invoke the checker which checks the well formedness of SDF definitions The Equations entry invokes the asf checker to check the equations The entry Run Unit Tests allows you to run the tests that are in the selected module Syntax Equations Run Unit Tests Figure 16 Pop up menu for invoking various checkers for a module 13 ASF Equations SDF Definition Term ParseTable ASF ParseTable ASF SDF Module Text Figure 17 Export menu Compile Equations Generate ASF SDF API Figure 18 Tools menu Export The Export menu opens a new menu see Figure in order to perform a number of export operations For all operations described below a file selector will be launched for selecting a the appropriate file or entering a new file name The ASF Equations entry allows you to dump the equation of the selected module and all its imports This feature is needed in order to run the evaluator in a stand alone way or to compile the specification on the command line The SDF Definition entry allows you to dump the transitive closure of SDF modules into one file The Term ParseTable entry allow
34. n constructor used in priorities sort CHAR used in production rule deprecated tuple notation deprecated unquoted symbol notation deprecated non plain sort definition aliased symbol already declared Type check errors for plain SDF module not available start symbols in lt ModuleName gt not defined in any right hand literal in right hand side not allowed only sort allowed in right hand side of lexical function double used label constructor has already been used Type check warnings for ASF SDF exported variables section kernel syntax construction production renamings not supported not supported symbol 21 5 8 5 9 5 10 Type check errors for ASF SDF traversal attributes in non prefix function illegal traversal attribute missing bottom up or top down attribute missing break or continue attribute missing trafo and or accu attribute accu should return accumulated type trafo should return traversed type accutrafo should return tuple of correct types inconsistent arguments of traversal productions inconsistent traversal attributes asf equation sort must not be used charclasses not allowed in context free syntax Type check warnings for ASF Lexical probably intended to be a variable Deprecated condition syntax constructor not expected as outermost function symbol of left hand side Type check errors for ASF equations contain ambiguities uninstantiated variable occurre
35. n effort Preparing a language definition requires significantly less effort than developing an environment from scratch 1 2 Global Structure of the Meta Environment You can create new specifications or modify and test existing ones using the Meta Environment Speci fications consist of a series of modules and individual modules can be edited by invoking editors for the syntax part and the equations part of a module All editing in the Meta Environment is done by creating instances of a generic syntax directed editor After each editing operation on a module its implementation is updated immediately It consists of a parser a pretty printer and a term rewriting system which are all derived from the module automatically A module can be tested by invoking a term editor to create and evaluate terms defined by the module Term editors use the syntax of the module for parsing the textual representation of terms and for converting them to internal format syntax trees The equations of the module are then used to reduce the terms into normal form This result is in its turn converted back to textual form by pretty printing it 1 3 About this Manual This manual is intended for those users that want to try out the ASF SDF Meta Environment This manual is still under development and we welcome all feed back and comments The focus of this manual will be on using the system to write a specification like a type checker or evaluator for the toy langu
36. n the button pane at the right hand side of the main window An editor will appear containing the syntax part of the Booleans specification the SDF section This editor is a version of the standard text editor Emacs extended with the menus Actions and Move The result is shown in FigureB2 e Push the button 1 Edit Equations This will open a new instance of Emacs containing the seman tic part of the Booleans specification a list of conditional equations Note that the syntax of the equations is determined by the syntax defined in the SDF section The result is shown in Figure B3 24 module Booleans imports basic Whitespace exports context fr sorts Bool context free syntax true false Bool Bool Bool amp Bool not Bool be Ww Bool 1E context free priorities Bool amp Bool gt Bool Bool Bool gt Bool hiddens variables Bool 0 9 gt Bool equations B2 false Bool B4 false amp Bool Figure 31 B1 true Bool true B3 true amp Bool Bool false B5 not false true B6 not true false start symbols Bool Bool Bool Bool Bool Bool Bool bracket Specification of module Booleans 25 bug emacs localhost localdomain File Edit Options Buffers Tools Actions Move Upgrade Help module Booleans imports basic Whitespace exports context free start symbols Bool sorts Bool context free priorities Bo
37. nce negative condition introduces variable s uninstantiated variables in both sides of condition uninstantiated variables in equality condition right hand side of matching condition introduces variables matching condition does not introduce new variables strange condition encountered Left hand side is contained in a list no variables may be introduced in left hand side of test 22 6 Libraries The ASF SDF library modules are very convenient when developing a specification It provides a number of predefined basic data structures and grammars There are 4 different library categories e basic e containers e langauges e utilities The basic library provides basic data structures such as Booleans Bytes Comments Integers and Strings Furthermore it provides modules to access information stored in the underlying parse trees such as position information The containers library gives a number of parameterized data structures such as balanced trees lists sets and tables The languages library allows the reuse of a number of grammars This part of the library will be extended in the near future The utilies library provides functionality which can be very helpful when developing sophisticated ASF SDEF specifications 7 Guided Tour To help you get acquainted with the ASF SDF Meta Environment the system contains two example spec ifications The first one is a very simple specification Booleans and the second is the
38. nt before exiting the user is explicitly asked whether he she wants to save the term store languages Figure 4 Main window after loading the Pico specification Figure 5 File menu main window BytesCon saf Dy NatCon sat C comments sdf C ParsetreeCon sdf D Errors saf LD ReadwriteCon sdf LD BoolCon sat LD integers saf C sucon sat C Booleans saf LD LocationOperations saf Strings sdf C Bytes sat Locations saf C Whitespace saf Figure 6 Dialog for opening a library module File menu v EES 5 Save In C pico 7 cal e a E c cys Ly Pico eval sdf test Pico typecheck sat AssemblyLanguage saf Pico Values sdf C Booleans sdf LC SimplifyExpr sat D Check types sdf D Type environments sdf Ly NextLabel sdf j Value environments sdf D Pico compile sdf FileName Files of Type sdf Figure 7 Dialog for creating a new module File menu Leanne Look In pico aA Ss BB Cicvs L Pico eval sdf Ci test Pico typecheck sdf AssemblyLanguage sdf Pico Values sdf C Booleans saf C SimplityExpr sat D Check types sdf B Type environments sdf NextLabel sdf D Pico compile sdf FF j Value environments sdf FileName Files of Type ssa xj Figure 8 Dialog for opening a module File menu Load Term Store Save Term Store Figur
39. ol amp Bool gt Bool gt Bool Bool gt Bool hiddens variables Bool 0 9 gt Bool Focus symbol Grammar Figure 32 Editor for the syntax of Booleans ib emacs localhost localdomain lt 2 gt File Edit Options Buffers Tools Actions Move Upgrade Help equations A AEn Bool Bool B3 true amp Bool Bool B4 false amp Bool false B5 not false true B6 not true false mbol ASF ConditionalEquation Figure 33 Editor for the equations of Booleans 26 7 3 2 emacs localhost localdomain lt 3 gt 0X File Edit Options Buffers Tools Actions Move Help Caxegssr oTa true falsel i Figure 34 Term editor for Booleans after entering true amp false d emacs localhost localdomain lt 3 gt a A File Edit Options Buffers Tools Actions Move Help OS8 xrSGsrxr eBeGs true flse Figure 35 Term editor for Bool examp1e after clicking on false A Term Editor for Booleans Open a term editor over module Booleans by first selecting module Booleans in the module pane and then pushing the New Term button A standard dialog window pops up Enter any new filename for instance term trm Type the term true amp false in this editor The result is shown in FigureB4 From menu Actions click the Parse button The text in the focus is now being parsed Click on one of the characters of the
40. orte 30 sdf As you can see in both the import pane and the module pane see FigureB9 not only Pico syntax dby Pico Syntax Meta Environment File Cache Tools Modules basic languages Pico Identifiers Figure 39 Main window after opening Pico syntax 7 4 1 The Module Editor for Pico Syntax e Open an editor for the syntax of Pico Syntax using the Edit Syntax button A Pico program consists of the word begin a declaration section a series of zero or more statements and the word end The declaration section consists of the word declare a list of zero or more tuples identifier type and a semi colon Types are string and natural There are three kinds of statements assignments if then else statements and while loops The Pico language has also expressions for adding and subtracting natural numbers and for concatenating strings Notes e In the context free section the list constructs ID TYPE and STATEMENT are used e The Pico syntax module contains no equations 7 4 2 A Term Editor for Pico syntax e Open a term editor for the Pico program fac pico select Pico syntax in the module pane and push the term button in the button pane A dialog window pops up and type fac pico as name of the term e Press the Parse button in the Ac
41. requently occurring errors Omitting the LAYOUT definition is one of most common errors made when writing a new specification always make sure your syntax definitions define at least spaces and newlines to be LAYOUT In fact if you want to be sure use whenever possible the predefined module Whitespace from the library Try to do this for as many modules as possible e End the editing of your term and the module Booleans by selecting the File menu of the editor e Exit the system by pushing the Quit entry in the File menu of the main w Meta Environment 7 4 The Pico Specification Exit Emacs from the indow of the ASF SDF More features of the ASF SDF Meta Environmentcan be studied by looking at the Pico specification Pico is a toy language used for demonstration purposes We turn our attention to the complete Pico language Section 3_Ip Restart the ASF SDF Meta Environment by entering meta Section D at t Leave the ASF SDF Meta Environment This is done by selecting Quit from the File menu he command line Add the module Pico syntax by selecting the File menu and selecting the Open Library Module button In the dialog window that appears click on Languages and push the Open button In the subdirectory choose pico via double clicking or selecting and pushing Open Select the single subdirectory syntax and finally choose the file Pico Syntax has been added but also all modules that are directly or transitively imp
42. s you to dump the parse table of the selected module and all its imports in order to parse terms This functionality is needed in order to use the parser in a stand alone way The ASF ParseTable entry allows you to dump the parse table of the selected module and all its imports in order to parse the equations text of module This functionality is only needed for debugging purposes The ASF SDF Module Text entry allows you to print the text represention of both syntax and the equation part together in one file Tools The Tools menu opens a new menu see Figure 18 in order to perform a number of operations For all operations described below a file selector will be launched for selecting a the appropriate file or entering a new file name The Compile Equations entry allows you to invoke the ASF SDF compiler to generate C code The Generate ASF SDF API entry allows you to derive from an SDF module a new module which contains functionality to compare and manipulate the items defined in the SDF definition Refactor Refactor opens another menu see Figure 19 in order to refactor the specification The Copy entry in the refactor menu allows you to make a copy of a module Copy Delete Rename Add Import Remove Import Figure 19 Refactor menu 14 X Select an Option x Do you want to recursively close the imported modules Figure 20 Select an Option window The Delete entry allows you
43. specification of the syntax typechecker and dynamic semantics of the small programming language Pico This Guided Tour is meant to guide you through these specifications and show you the main features of the ASF SDF Meta Environment Only global information is given about these features but references are made to parts of the user manual where detailed information can be found 7 1 Before you start the Guided Tour When configuring the Meta Environment a directory was giving where the Meta Environment will be installed e g lt path gt asfsdf meta You will then find the files needed for this Guided Tour in the directory lt path gt share asfsdf meta demo pico It is advisable to make your personal copy of this directory In this Guided Tour we will use pico to refer to your own copy of the directory Furthermore all the examples given in this manual can be found in lt path gt asfsdf meta share demo user manual examples For each module in a specification there exists a file module sdf which contains the syntax of module and there may be a file module asf which contains the equations semantics of module The directory pico contains e Files for the Pico specification e Three examples of Pico programs big pico fac pico small pico e Terms for typechecking and evaluating these Pico programs 7 2 Beginning the Guided Tour e Go to your personal copy of the directory pico e Type the command meta The main window of the Meta
44. t list_ofiproduction _rules gt is printed A cycle is reported whenever the parser detects a non terminating chain of reductions All production rules on the cycle are shown as lt list of_production_rules gt An ambiguity again in case of an editor the cursor is positioned at the position where the first ambigu ity is detected in the input and the message Ambiguity lt list_ofproduction_rules gt is printed An ambiguity is reported whenever the parser was able to recognized a part of the input sentence in different ways The lt list_of production_rules gt shows all production rules that are involved in the ambiguity 5 5 Type check warnings for plain SDF The warnings and error for SDF are separated into 4 sections First we will discuss the type check warnings and errors see Section 5 6 for plain SDF This variant of SDF is independent of ASF Later we will discuss 20 the warnings see Section 5 7 and errors see Section 5 8 for SDF used in combination with ASE In this case we need to be more strict and every SDF construct is supported by ASF Warnings do not break the specification but it is advisable to fix them anyway Often they point out some not well formed part in the specification 5 6 5 7 undeclared sorts double declared sort double declared start symbol illegal attribute bracket left right assoc non assoc used in priorities but undefined inconsistent rhs in priorities unknow
45. tions menu of the editor As a result fac pico is parsed e Press the Reduce button in the Actions menu of the editor This has the following effects e The term in the editor is parsed 31 TypeCheck Evaluate Compile SimplifvyExpression Figure 40 Pico specific pull down menu Pico e All the equations that are valid for this editor are parsed and compiled into a rewrite system In this case that means the equations of the imported modules basic Bytes basic Booleans basic Integers and basic Strings This may take some time e The term in the editor is reduced As no equation can be applied to reduce this term the term itself is returned in the shell window from which the Meta Environment has been started Reducing a term for the second time is notably faster the equations have been processed already If you are curious what is going have a look at the status field at the bottom of the main window It reveals the steps that are necessary to arrive at a specification which can be interpreted e Verify this by pushing the Reduce button once more Next to the pull down menu Move in the term editor for fac pico you will see a pull down menu Pico see Figure 4Q Push the TypeCheck button This has the following effects e The Pico typecheck specification is loaded in the environment e The term in fac pico is automatically extended with the function tcp The function tcp for type check program applies the typing rules for
46. wn menu contains four buttons Figure 23 for structured traversal of the syntax tree of the text in the editor Using the entries Left Right Up Down the user can navigate in the tree e Both the syntax and equation editor have an extra pull down menu Upgrade The Upgrade menu for the syntax editor invokes a tool which transforms the SDF module This transformation involves changing the tuple syntax see User Manual quoting of unquoted literals and changing symbol declarations into context free start symbols The Upgrade menu fo the equation editor involves the introduction of the new operators and in the conditions of the equations see the User Manual for more details e The term editors have the Act ions menu which contains buttons Figure 224 Parse parses the term in the editor given the corresponding SDF definition Reduce that applies the evaluator to the text in the editor given the corresponding equations View Tree displays the parse tree structure of the focus in the parsetree pane View Full Tree displays the parse tree structure with more details of the focus in the parsetree pane Lett Right Up Down Figure 23 Move menu all editors 16 Parse Reduce Pretty Print View Tree View Full Tree ShowoOrigin Dump ParseTable Edit Syntax Edit Equations Figure 24 Act ions menu term editor ShowOrigin Dump ParseTable Saves the corresponding parse table to disk Ed
47. word false this will move the cursor a single character sized rectangle You have selected false as new focus and the blue background appears This is shown in FigureB5 Click on the and operator amp The whole expression is now selected as focus The movements of the focus are syntax directed when you click on any character in the text the smallest syntactic unit enclosing that character will be selected and becomes the focus Reduce the term in the term editor by clicking the Reduce button in the Actions menu of the editor The result will appear in a new term editor window Figure6 Error messages 27 emacs localhost localdomain lt 4 gt 0X File Edit Options Buffers Tools Actions Move Help na OB Xrasr gt r eBags trie A reduct out Fundamental L1 All 4 PX Focus symbol Bool Figure 36 New term editor with normal form of true amp false e Editthe term true amp false such that the new term will be syntactically incorrect For instance type true amp wrong Force a parse of the term by selecting the Parse button of the Actions menu In the status line at the bottom of the edit window a message appears Parse error near cursor and the cursor will be positioned in the word wrong Associativity Priorities and Brackets e Erase the term in your term editor and type anew term true amp
48. ype str Pairs list Snapshot term in execute term store TS7 rec msg ts add table TableName ValueType snd do TS add table TableName ValueType rec msg ts remove table TableName snd do TS remove table TableName rec msq ts clear table TableName Name oo Stop Go Step Posit SGLR MetaG Ui File GetEq GetSp editor hive eneric adapte m generic adap sdf modules _ term store user interface nfiguration manager editor manager in output structure editor sdftrenaming error support Right click to re set breakpoint on a line Figure 2 ToolBus viewer e Next to File a list of icons is shown Open Library Module the nicely wrapped box for opening a library module New Module the empty page for creating a new module Open Module the non empty page for opening an existing module Clear History the eraser for clearing the Info and Log panels Exit the open door for exiting the ASF SDF Meta Environment These icons are described in Section B I e The pane import A graphical canvas either empty in Figure or containing rectangles and arrows in Figure at the right hand side of the window shows the import graph of the specification you are editing The import pane is described in SectionB 4 1 e The pane parsetree Again a graphical canvas which will be used to visualize the parse tree of a selected piece of a parsed term aw imports imported by
Download Pdf Manuals
Related Search
Related Contents
PASCO Specialty & Mfg. WA9900 User's Manual "user manual" Samsung Digimax U-CA 401 User's Manual Con EFECTO ARDURAPID. Interiores. Colocación sin IAN 88798 - Kompernass takeMS 4GB Micro SDHC Card + Adapter GC Initial LF Manual Técnico Eau stérile pour injection, USP dans un contenant en plastique USER MANUAL Push Back Gateway U9920-GPB(EU) UNITEST® Copyright © All rights reserved.
Failed to retrieve file