From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id EB620BB84 for ; Thu, 29 Jun 2006 03:35:42 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k5T1Zhh8019155 for ; Thu, 29 Jun 2006 03:35:43 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id DAA28948 for ; Thu, 29 Jun 2006 03:35:42 +0200 (MET DST) Received: from mz1.forethought.net (mzpi3.forethought.net [216.241.36.12]) by nez-perce.inria.fr (8.13.6/8.13.6) with ESMTP id k5T1ZeJw002635 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Thu, 29 Jun 2006 03:35:42 +0200 Received: from [216.241.35.41] (helo=[10.0.0.2]) by mz1.forethought.net with esmtp (Exim 4.51) id 1FvlRH-00022u-9i for caml-list@inria.fr; Wed, 28 Jun 2006 19:35:29 -0600 Message-ID: <44A32E83.5020305@gushee.net> Date: Wed, 28 Jun 2006 19:36:03 -0600 From: Matt Gushee User-Agent: Thunderbird 1.5.0.2 (X11/20060504) MIME-Version: 1.0 To: caml-list@inria.fr Subject: ANN: RASCL's A Simple Configuration Language Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 44A32E6F.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 44A32E6D.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 config:01 ocaml:01 generality:01 arbitrarily:01 integers:01 booleans:01 bug:01 camlp:01 config:01 ambiguities:01 parsed:01 preprocessor:01 interfaces:01 dict:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 Here's yet another configuration language--with an OCaml library to process it, of course. RASCL came into being after I investigated the Config_file library and found it overly complex--which may say more about me than about the library. But at any rate, RASCL, the language, and Rascl, the OCaml library attempt to be about as simple as possible for both users and developers, at the expense of some generality. Here are some of the main features: * A RASCL file may be just a sequence of keys and values, or it may be arbitrarily nested. * Values may be strings, integers, floats, booleans, or lists thereof. * No OCaml-specific types supported (that's a feature, not a bug ;-) * Strings need not be quoted unless they contain special characters or would otherwise be parsed as another type. * Two interfaces for accessing configs: - Dict module - Object system, with a CamlP4 preprocessor to generate objects and sample config files BTW, I have attempted to provide thorough documentation for the language RASCL--in case anyone wants to implement it for other programming languages. However, I don't have a lot of experience writing language specifications, and there are probably some errors and ambiguities. I'd appreciate feedback from any interested and knowledgeable parties. RASCL and Rascl may be found at: -- Matt Gushee : Bantam - lightweight file manager : matt.gushee.net/software/bantam/ : : RASCL's A Simple Configuration Language : matt.gushee.net/rascl/ :