| 128 | | argRank(Switch 'h') = -1 |
| 129 | | argRank(Switch 'v') = -1 |
| 130 | | argRank(Opt "-V:" _) = -1 |
| 131 | | argRank(Switch 'V') = -1 |
| 132 | | argRank(Opt "-I" _) = 0 |
| 133 | | argRank(Switch 'd') = 1 |
| 134 | | argRank(Switch 'w') = 2 |
| 135 | | argRank(Switch 'c') = 3 |
| 136 | | argRank(Opt "-C" _) = 4 |
| 137 | | argRank(Opt "-B" _) = 4 |
| 138 | | argRank(Opt "--external" _) = 5 |
| 139 | | argRank(Opt "-M" _) = 98 |
| 140 | | argRank(Switch 'n') = 99 -- translated into Perl code (later) |
| 141 | | argRank(Switch 'p') = 99 -- translated into Perl code (later) |
| 142 | | argRank(Switch 'l') = 100 -- translated into Perl code (later) |
| 143 | | argRank(Switch '0') = 100 -- translated into Perl code (later) |
| 144 | | argRank(Opt "-e" _) = 100 -- translated into Perl code |
| 145 | | argRank(_) = 100 -- filename or @ARGS or whatever |
| | 128 | argRank (Switch 'h') = -1 |
| | 129 | argRank (Switch 'v') = -1 |
| | 130 | argRank (Opt "-V:" _) = -1 |
| | 131 | argRank (Switch 'V') = -1 |
| | 132 | argRank (Opt "-I" _) = 0 |
| | 133 | argRank (Switch 'd') = 1 |
| | 134 | argRank (Switch 'w') = 2 |
| | 135 | argRank (Switch 'c') = 3 |
| | 136 | argRank (Opt "-C" _) = 4 |
| | 137 | argRank (Opt "-B" _) = 4 |
| | 138 | argRank (Opt "--external" _) = 5 |
| | 139 | argRank (Opt "-M" _) = 98 |
| | 140 | argRank (Switch 'n') = 99 -- translated into Perl code (later) |
| | 141 | argRank (Switch 'p') = 99 -- translated into Perl code (later) |
| | 142 | argRank (Switch 'l') = 100 -- translated into Perl code (later) |
| | 143 | argRank (Switch '0') = 100 -- translated into Perl code (later) |
| | 144 | argRank (Opt "-e" _) = 100 -- translated into Perl code |
| | 145 | argRank _ = 100 -- filename or @ARGS or whatever |
| 148 | | gatherArgs([]) = [] |
| 149 | | gatherArgs("-l":rest) = gatherArgs("-e":"# BEGIN { ... } # to be done":rest) -- XXX implement BEGIN block later |
| 150 | | gatherArgs("-e":frag:rest) = [Opt "-e" frag] ++ gatherArgs(rest) |
| 151 | | gatherArgs("--external":mod:rest) = [Opt "--external" mod] ++ gatherArgs(rest) |
| 152 | | gatherArgs("-I":dir:rest) = [Opt "-I" dir] ++ gatherArgs(rest) |
| 153 | | gatherArgs("-M":mod:rest) = [Opt "-M" mod] ++ gatherArgs(rest) |
| 154 | | gatherArgs("-C":backend:rest) = [Opt "-C" backend] ++ gatherArgs(rest) |
| 155 | | gatherArgs("-B":backend:rest) = [Opt "-B" backend] ++ gatherArgs(rest) |
| 156 | | gatherArgs("-V:":item:rest) = [Opt "-V:" item] ++ gatherArgs(rest) |
| 157 | | gatherArgs(('-':[]):xs) = [File "-"] ++ gatherArgs(xs) |
| 158 | | gatherArgs(("--"):rest) = [File x | x <- rest] |
| 159 | | gatherArgs(('-':x:[]):xs) = [Switch x] ++ gatherArgs(xs) |
| 160 | | gatherArgs(x:xs) = [File x] ++ gatherArgs(xs) |
| | 148 | gatherArgs [] = [] |
| | 149 | -- XXX implement BEGIN block later |
| | 150 | gatherArgs ("-l":rest) = gatherArgs("-e":"# BEGIN { ... } # to be done":rest) |
| | 151 | gatherArgs ("-e":frag:rest) = [Opt "-e" frag] ++ gatherArgs(rest) |
| | 152 | gatherArgs ("--external":mod:rest) = [Opt "--external" mod] ++ gatherArgs(rest) |
| | 153 | gatherArgs ("-I":dir:rest) = [Opt "-I" dir] ++ gatherArgs(rest) |
| | 154 | gatherArgs ("-M":mod:rest) = [Opt "-M" mod] ++ gatherArgs(rest) |
| | 155 | gatherArgs ("-C":backend:rest) = [Opt "-C" backend] ++ gatherArgs(rest) |
| | 156 | gatherArgs ("-B":backend:rest) = [Opt "-B" backend] ++ gatherArgs(rest) |
| | 157 | gatherArgs ("-V:":item:rest) = [Opt "-V:" item] ++ gatherArgs(rest) |
| | 158 | gatherArgs (('-':[]):xs) = [File "-"] ++ gatherArgs(xs) |
| | 159 | gatherArgs (("--"):rest) = [File x | x <- rest] |
| | 160 | gatherArgs (('-':x:[]):xs) = [Switch x] ++ gatherArgs(xs) |
| | 161 | gatherArgs (x:xs) = [File x] ++ gatherArgs(xs) |
| 168 | | desugarDashE ((Switch 'p'):args) = desugarDashE ((Opt "-e" "while ($_ = =<>) { $_ .= chomp;"):script++[(Opt "-e" "; say $_; }")]++rest) |
| 169 | | where |
| 170 | | (script,rest) = partition isDashE args |
| 171 | | isDashE (Opt "-e" _) = True |
| 172 | | isDashE (_) = False |
| 173 | | desugarDashE ((Switch 'n'):args) = desugarDashE ((Opt "-e" "while ($_ = =<>) { $_ .= chomp;"):script++[(Opt "-e" "}")]++rest) |
| 174 | | where |
| 175 | | (script,rest) = partition isDashE args |
| 176 | | isDashE (Opt "-e" _) = True |
| 177 | | isDashE (_) = False |
| | 169 | desugarDashE ((Switch 'p'):args) = desugarDashE $ |
| | 170 | (Opt "-e" "env $_; while ($_ = =<>) { $_ = chomp($_);" : args) ++ [Opt "-e" "; say $_; }"] |
| | 171 | desugarDashE ((Switch 'n'):args) = desugarDashE $ |
| | 172 | (Opt "-e" "env $_; while ($_ = =<>) { $_ = chomp($_);" : args) ++ [Opt "-e" "}"] |