From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id D5D947EE34 for ; Fri, 18 Mar 2016 22:10:58 +0100 (CET) IronPort-PHdr: 9a23:ws3JHBfnuzGoyCwYCH35DGW+lGMj4u6mDksu8pMizoh2WeGdxc6+Zh7h7PlgxGXEQZ/co6odzbGG4+a4ByddvN6oizMrTt9lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUiv2OQc9HOnpAIma153xjLDivcWNKFgVzBOGIppMbzyO5T3LsccXhYYwYo0Q8TDu5kVyRuJN2GlzLkiSlRuvru25/Zpk7jgC86l5r50IAu3GePEgTLdWCDMRaUgq6cetuRSQYxGI4y4zW28MkxdMSzPO7BzgU4255iTzvPB81S3cJsb2QKo5Qxyt6q5qTFnjjyJRZG1xy33elsEl1PETmxmmvREqm4M= Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=gabriel.scherer@gmail.com; spf=Pass smtp.mailfrom=gabriel.scherer@gmail.com; spf=None smtp.helo=postmaster@mail-io0-f172.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.223.172; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.223.172 as permitted sender) identity=mailfrom; client-ip=209.85.223.172; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-io0-f172.google.com) identity=helo; client-ip=209.85.223.172; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-io0-f172.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BDAQBAbuxWi6zfVdFehBdyBqgBhySIZIIdgW8hhWwCgSoHORMBAQEBAQEBARABAQEICwsJHzGCLYIVAQEEEhEdARsdAQMMBgULDQICJgICIgERAQUBHBkih28BAxIOo2CBMT4xizaBaoJXhUYKGScNFTyEBQEBAQEGAQEBARYBAQQKBW2FIoREgluBSWSCNIJWBZdXgVKEH4gTjweNSBEegQ8iAoI0HoFSOy6KYwEBAQ X-IPAS-Result: A0BDAQBAbuxWi6zfVdFehBdyBqgBhySIZIIdgW8hhWwCgSoHORMBAQEBAQEBARABAQEICwsJHzGCLYIVAQEEEhEdARsdAQMMBgULDQICJgICIgERAQUBHBkih28BAxIOo2CBMT4xizaBaoJXhUYKGScNFTyEBQEBAQEGAQEBARYBAQQKBW2FIoREgluBSWSCNIJWBZdXgVKEH4gTjweNSBEegQ8iAoI0HoFSOy6KYwEBAQ X-IronPort-AV: E=Sophos;i="5.24,356,1454972400"; d="scan'208";a="208708888" Received: from mail-io0-f172.google.com ([209.85.223.172]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 18 Mar 2016 22:10:58 +0100 Received: by mail-io0-f172.google.com with SMTP id o5so67739756iod.2 for ; Fri, 18 Mar 2016 14:10:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3/DuLiQSnqglay2k8S45zZLSUXIyIiaIKB+MIoAnVaE=; b=j2htoZflyyltNgKkqWQAI3QztcRqR6WZquocyoLP+rN5lLhVEg16p7RjUXDxX7we4Q IaN1ctETtgA7Mc6OYQUmuoBfxkT5x+lHNpl7xiEW0prdB3p9yXW/5YVyrklibnh1Trw6 SqxBB9J24WS5ZIPn3VjvxihxrrMHsyyWGlKsT3zDGFWPupbt5Aq3o316v3FSbhWOf0s2 Mg3DAitpKH7oKriymturbu439zID5by22dZHUpI896NfVkgwV39rEbGJ/z0WMnAym9ms 2xJ/mtg6E0SEsl6MW0kh7meq+z8SbzEiV1sVmqvUhEesar43jfUmKO/Fk0jKaqHUX02K D6hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3/DuLiQSnqglay2k8S45zZLSUXIyIiaIKB+MIoAnVaE=; b=RDwjeEFqcGSj8WQfXrABdoIFy2VopW272GU8yCjXJUyEidg4rqeot7RJ1vpQv8SrFP 3SOb7lxk6J/OqY4WWm2YbrV5Q01BKNcO12LZznahSronx6VbSXdMjWpHc9L3QcwH8QcA /Nw0nFn6dfjXiQB+zVvwZblyLLCsDv5a+Yc/YmQW8jUi0wfXDCXAlABERLo4ceUjK1hM qi/2n4jGC0ZV4VHsDIaZGafJ7IECMwKXNkwAAGq1a+M4qIk3CLaTpnrd3A+z3v11ccil +J7bKxxSbEjWltCfVUXHO3hVo656ghI2boXTMQAuo0K9Vl/CHBZZj+uf/HsW9WP+On/t CkCQ== X-Gm-Message-State: AD7BkJIgANV/T2Nn96r/eWZz8sUs6y7sPz/J0UCGhydqQHjiI5Cd6xCNzDqtesV4GR4+CF0f4beDFhs2hKwU5w== X-Received: by 10.107.47.163 with SMTP id v35mr16546020iov.19.1458335456723; Fri, 18 Mar 2016 14:10:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.17.4 with HTTP; Fri, 18 Mar 2016 14:10:17 -0700 (PDT) In-Reply-To: References: From: Gabriel Scherer Date: Fri, 18 Mar 2016 22:10:17 +0100 Message-ID: To: picflo_2@web.de Cc: caml users Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] ABNF Parser Googling for "ocaml abnf" directs to https://github.com/avsm/ocaml-abnf which seem to be an experimental project, but a good starting point. It has a lexer and a parser for abnf grammars, https://github.com/avsm/ocaml-abnf/blob/master/abnf_lexer.mll https://github.com/avsm/ocaml-abnf/blob/master/abnf_parser.mly a type representing the ABNF abstract syntax tree https://github.com/avsm/ocaml-abnf/blob/master/abnf_signature.ml a parser for the grammars embedded in a small command-line tool (that can also output abnf grammars in several representations) https://github.com/avsm/ocaml-abnf/blob/master/abnf_cmd.ml and two examples of abnf grammars https://github.com/avsm/ocaml-abnf/blob/master/http.abnf https://github.com/avsm/ocaml-abnf/blob/master/imap.abnf On Fri, Mar 18, 2016 at 12:00 PM, wrote: > Hi, > > i want to encode my network protocols inside a state machine which i derive > from an abnf specification. Ideally i would like to generate the client and > server side from > a single ABNF spec. Is this a valid approach and if so is there some OCaml > open source project for reading abnf specs? > > I would also be very interested in how others approach encoding network > protocols for distributed systems, especially with OCaml. > > Best regards, > > Florian