Re: ml-lex example doesn't work

Vesa A Norrman <[email protected]>
Newsgroups gmane.comp.lang.sml.smlnj
Message-ID <[email protected]>
Maybe it's better to try the calc example in ml-yacc source code. It 
should be in directory smlnj/src/ml-yacc/examples/calc after installation.

I also noticed that that example has not been converted to the latest 
basis library but it's easy to change
"TextIO.inputLine TextIO.stdIn" to
"(fn SOME x => x | NONE => "") (TextIO.inputLine TextIO.stdIn)"
in calc.sml file.

Vesa

On Mon, 31 Jan 2005, Natalia Beatriz Bidart wrote:

> Hi,
> I'm a newbie in ML. I need to build a parser in ML, so I'm  learning ML-Lex 
> and ML-Yacc, but the sample 
> (http://www.smlnj.org/doc/ML-Lex/manual.html#sample) in the ML-Lex 
> documentation didn't work. What I got after generate the sml file was:
>
> [bn@DALI lex]$ sml calc.lex.sml
> Standard ML of New Jersey v110.52 [built: Sat Jan 29 11:24:27 2005]
> [opening calc.lex.sml]
> [autoloading]
> [autoloading done]
> calc.lex.sml:9.22-9.28 Error: unbound variable or constructor: output
> calc.lex.sml:9.29-9.36 Error: unbound variable or constructor: std_out
> calc.lex.sml:146.43-146.50 Error: unbound variable or constructor: revfold
> calc.lex.sml:144.9-144.12 Error: unbound variable or constructor: inc
> calc.lex.sml:146.61-146.81 Error: operator and operand don't agree [tycon 
> mismatch]
>  operator domain: char
>  operand:         string
>  in expression:
>    ord "0"
> /usr/local/sml/bin/sml: Fatal error -- Uncaught exception Error with 0
> raised at ../compiler/TopLevel/interact/evalloop.sml:63.48-63.56
>
> My first try was to comment the line "val error = fn x => output(std_out,x ^ 
> "\n")" and to add a dummy error definition, but I'm still getting:
>
> [bn@DALI lex]$ sml calc.lex.sml
> Standard ML of New Jersey v110.52 [built: Sat Jan 29 11:24:27 2005]
> [opening calc.lex.sml]
> [autoloading]
> [autoloading done]
> calc.lex.sml:146.43-146.50 Error: unbound variable or constructor: revfold
> calc.lex.sml:144.9-144.12 Error: unbound variable or constructor: inc
> calc.lex.sml:146.61-146.81 Error: operator and operand don't agree [tycon 
> mismatch]
>  operator domain: char
>  operand:         string
>  in expression:
>    ord "0"
> calc.lex.sml:152.38-152.84 Error: operator is not a function [tycon mismatch]
>  operator: string
>  in expression:
>    error ("calc: ignoring bad character " ^ yytext)
> /usr/local/sml/bin/sml: Fatal error -- Uncaught exception Error with 0
> raised at ../compiler/TopLevel/interact/evalloop.sml:63.48-63.56
>
> So I tried the revfold definition directly in the compiler but:
> - revfold;
> stdIn:1.1-1.8 Error: unbound variable or constructor: revfold
>
> What I found in http://www.smlnj.org/dist/release/110.0.7/110-HISTORY was:
>
> * the functions List.fold and List.revfold have been replaced by
> 	List.foldr and List.foldl.  Furthermore, they have the type:
>
> 	  (('a * 'b) -> 'b) -> 'b -> 'a list -> 'b
>
> 	I.e., the second and third arguments are swapped.
>
> So I'm wondering if the ML-Lex documentation is out-to-date and I have to 
> replace the revfold calls for something else, or I'm doing something wrong, 
> or something is missing (like a library?). I also don't know if the "output" 
> call is a function or not, if the "std_out" is a definition or not, etc.
>
> Can you please give a clue? Or a link whith the correct information?
> Thanks a lot, Natalia.
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Smlnj-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/smlnj-list
>

-- 
                                     /`---*\
                                    = ^ o ^ =
                                     `-----'


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.