package p4spectec

  1. Overview
  2. Docs
P4-SpecTec: A mechanization toolchain for the P4 Programming Language

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.1.2.tar.gz
md5=1a3bc0a385fe1ecf403c019f49aa6de6
sha512=5d20b5821f33e2a3a5419b208606f27c01511994c2b3b1e1cdf4c077056dfd0aa81682af0720e1060ee2bfb0341918fcc4c53159820205a2bc32b725e5c1a714

doc/src/spectec/parse.ml.html

Source file parse.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module Value = Runtime.Value
module Run = Runtime.Dynamic_Runner.Signature

let parse_files (mode : Run.mode) (paths_spec : string list) : Value.t =
  match mode with
  | AL_mode -> paths_spec |> Pass.algo |> Ali.Boot.boot_spec
  | SL_mode -> paths_spec |> Pass.structure ~final:true |> Sli.Boot.boot_spec
  | PL_mode -> assert false
  | Empty_mode -> assert false

let parse_string (mode : Run.mode) (_path : string) (str : string) : Value.t =
  match mode with
  | AL_mode ->
      str |> Frontend.Parse.parse_string |> Pass.Elaborate.Elab.elab_spec
      |> Pass.Algo.algo_spec |> Ali.Boot.boot_spec
  | SL_mode ->
      str |> Frontend.Parse.parse_string |> Pass.Elaborate.Elab.elab_spec
      |> Pass.Algo.algo_spec
      |> Pass.Structure.Struct.struct_spec ~final:true
      |> Sli.Boot.boot_spec
  | PL_mode -> assert false
  | Empty_mode -> assert false