CurryInfo: currypp-3.2.0 / CPP.ICode.Parser.ML.Parser.layout

definition: Info
 
layout :: String -> TPos -> ([Symbol],[Warning])
layout l start = (join input,r)
  where (input,r) = lex l start
        join :: [Symbol] -> [Symbol]
        join [] = []
        join (x:xs) | isStartTag x = joiner x xs []
                    | otherwise = x : join xs
        joiner :: Symbol -> [Symbol] -> [Symbol] -> [Symbol]
        joiner t [] tmp = t : reverse tmp
        joiner t@(StartTag s a _,p) (x:xs) tmp
          | isAlign x = joiner t xs (x:tmp)
          | otherwise = (:) (StartTag s a (wcol (pos x)),p)
                            (reverse tmp) ++ join (x:xs)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
set the right indentation for every StartTag
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_) |-> {(,)}}
name: Info
 layout
precedence: Info
 no precedence defined
result-values: Info
 {(,)}
signature: Info
 String -> ((Prelude.Int, Prelude.Int), Prelude.Int)
-> ([(CPP.ICode.Parser.ML.Types.Token, ((Prelude.Int, Prelude.Int), Prelude.Int))], [(CPP.ICode.ParsePos.Pos, String)])
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term