Add support for IP masks

This pull request adds support for IP prefix masking.

It also refactors LocalCompiler to use PrefixTable instead of PosNeg -- a more flexible representation that will enable us to use more kinds of patterns in the future.
I'm not quite convinced that star will always terminate with out a semantic
equality on PrefixTables...

But I think we should merge the pull request anyway.

-N


On Thu, Jun 19, 2014 at 12:50 PM, Spiros Eliopoulos <
notifications@github.com> wrote:

> In lib/NetKAT_LocalCompiler.ml:
>
> > +              match F.inter p1 p2 with
> > +              | None ->
> > +		acc
> > +              | Some p ->
> > +		(p, b1 && b2)::acc)) in
> > +    let r = remove_shadowed (List.rev r) in
> > +    (* Printf.printf "INTER\n  %s\n  %s\n  %s\n" *)
> > +    (*   (to_string t1) *)
> > +    (*   (to_string t2) *)
> > +    (*   (to_string r); *)
> > +    r
> > +	
> > +  let diff t1 t2 =
> > +    inter t1 (neg t2)
> > +
> > +  (* (\* semantic compare *\) *)
>
> Is there any use for the commented code in this module?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/frenetic-lang/frenetic/pull/307/files#r13979373>.
>