tagged release 0.6.4
[parrot.git] / languages / WMLScript / wmls2pbc.pir
blob2239fc398ff0fd50d93fc329683e6627da66d58b
1 # Copyright (C) 2006-2008, The Perl Foundation.
2 # $Id$
4 =head1 NAME
6 wmls2pbc - WMLScript bytecode to Parrot PBC Translator
8 =head1 SYNOPSYS
10  parrot wmls2pbc.pir file.wmlsc
12 =head1 DESCRIPTION
14 B<wmls2pbc> translates a WMLScript bytecode file to Parrot PBC.
16 =head1 SEE ALSO
18 wmlsd, wmls2pir, wmlsi
20 =head1 AUTHOR
22 Francois Perrad.
24 =cut
26 .loadlib 'wmls_ops'
27 .HLL 'WMLScript', 'wmls_group'
29 .sub 'main' :main
30     .param pmc argv
31     load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
32     .local int argc
33     .local string progname
34     .local string filename
35     .local string content
36     argc = elements argv
37     if argc != 2 goto USAGE
38     progname = shift argv
39     filename = shift argv
40     content = load_script(filename)
41     unless content goto L1
42     .local pmc loader
43     .local pmc script
44     new loader, 'WmlsBytecode'
45     push_eh _handler
46     script = loader.load(content)
47     script['filename'] = filename
48     .local string gen_pir
49     gen_pir = script.translate()
50     .local pmc pir_comp
51     .local pmc pbc_out
52     pir_comp = compreg 'PIR'
53     pbc_out = pir_comp(gen_pir)
54     save_pbc(pbc_out, filename)
55     end
56   _handler:
57     .local pmc e
58     .local string s
59     .get_results (e, s)
60     print s
61     print "\n"
62   L1:
63     end
64   USAGE:
65     printerr "Usage: parrot wmls2pir.pbc filename\n"
66     exit -1
67 .end
70 # Local Variables:
71 #   mode: pir
72 #   fill-column: 100
73 # End:
74 # vim: expandtab shiftwidth=4 ft=pir: