frenetic-lang/frenetic — pull request #136 by jnfoster (2013-11-04 19:28:25+00:00)
Title: Local compiler bugfixes and front-end improvements

* Fixed several bugs in `LocalCompiler`

- `bin_local` now keeps the three disjoint sub-policies (`p_inter_q`,
`p_only`, and `q_only`) completely separate

- `group_to_string` and `to_netkat` was backwards for groups

- removed `op` for `extend`, which is no longer needed

* Fixed one of the unit tests in light of these changes

* Front-end improvements to run examples. For example:

[nate@northstar ~/shared/frenetic> ./katnetic.byte dump examples/choice_loops.kat
filter switch = 1 and port = 1;
(filter vlanId = 6; (id; vlanId := 17) |
filter vlanId = 7; (id; (vlanId := 11 + vlanId := 12)) |
filter vlanId = 9; (id; (vlanId := 11 + vlanId := 12))) |
drop
[{pattern={InPort=1,Vlan=6,action=SetField(Vlan,17); OutputPort(1),
cookie=0,idle_timeout=Permanent,hard_timeout=Permanent}
{pattern={InPort=1,Vlan=7,
action=(SetField(Vlan,11); OutputPort(1)) +
SetField(Vlan,12); OutputPort(1),
cookie=0,idle_timeout=Permanent,hard_timeout=Permanent}
{pattern={InPort=1,Vlan=9,
action=(SetField(Vlan,11); OutputPort(1)) +
SetField(Vlan,12); OutputPort(1),
cookie=0,idle_timeout=Permanent,hard_timeout=Permanent}]