1
module Productivity (char : Set) where
3
open import Imports.Coinduction
24
p sepBy sep = ♯ p ⊛ ♯ ((♯ sep ⊛ ♯ p) ⋆)
36
expr = term sepBy addOp
37
term = factor sepBy mulOp
38
factor = ♯ number ∣ ♯ (♯ (♯ sym openP ⊛ ♯ expr) ⊛ ♯ sym closeP)
40
-- Guarded and incomprehensible:
43
expr₁ = ♯ term₁ ⊛ ♯ expr₂
45
expr₃ = ♯ (♯ addOp ⊛ ♯ term₁) ⊛ ♯ expr₂
47
term₁ = ♯ factor₁ ⊛ ♯ term₂
49
term₃ = ♯ (♯ mulOp ⊛ ♯ factor₁) ⊛ ♯ term₂
51
factor₁ = ♯ number ∣ ♯ (♯ (♯ sym openP ⊛ ♯ expr₁) ⊛ ♯ sym closeP)