Hi E-shih: you solve the problem of expressing your log format as an LL(1) language. Eventually, Demeter/Java will support LL(k) like JCC which will make it easier. However, Demeter/Java works best when you have control over the language. From E-SHIH_CHANE@HP-Vancouver-om10.om.hp.com Fri Mar 7 18:18:01 1997 Subject: Questions about writing class dictionary on demeter/java Mime-Version: 1.0 To: lieber@ccs.neu.edu, kedar@ccs.neu.edu Hi Karl and Kedar, While I am writing class dictionary to specify my log file record, I encoutered following questions: 1. I can't use label "" --> example: ProcId_rd = ProcId ProcId. You cannot use any reserved word of the Demeter/Java design language: to, before, after etc. 2. "//" comments can only be used at beginning of the program.cd file I can use comments anywhere (Java style). Please send me a specific cd. 3. How do I definite a end of line. such as EOL = "\n". --> don't work ---> example: message = LIST( String ) EOL. 4. The parse can not handle leading zero if the integer is at beginning of the line. You seem to have found a wrinkle. It is being investigated. ---> example: class dictionary => ProcId = Integer. ProcId_rd = ProcId "/" ProcId. data input => 084/00000070 will have following error message: parse error at line 1 , column 2. Encountered: "84" Was expecting: "/" ... if change input data to 84/00000070 it work! 5. How can I specify a message is a sequence of string without put `"` around the string? You would have to write a little cd expressing the structure of the messages. If you don't know the structure of the message, this is a situation where you would like to slightly change the language, as you did. ---> example: working data input ==> 84/70 13883.273 VCOM: ---> DllMain: "Proc_Att: Win=95, mod = HPVCOM" not working data input ==> 084/070 13883.273 VCOM: ---> DllMain: Proc_Att: Win=95, mod = HPVCOM ----- -------- ------------------- ------------------------------ |_________|_______________|_____________|________-> ProcId_rd |_______________|_____________|________-> Time_rd |_____________|________-> Module_rd |________-> Message_rd class dictionary: Log_file = List(Log_rd) *EOF*. Log_rd = ProcId_rd Time_rd Module_rd Message_rd. ProcId = Integer. ProcId_rd = ProcId "/" ProcId. Time_rd =