homepage: ''
changelog-type: markdown
hash: eba695845638017355f5e92cd863e7581b918fb909138858b0d206c707507be1
test-bench-deps: {}
maintainer: nboldi@elte.hu
synopsis: A simple C++ parser with preprocessor features. C++ refactorings included.
changelog: ! "# Revision history for cparsing\r\n\r\n## 0.1.0.0  -- YYYY-mm-dd\r\n\r\n*
  First version. Released on an unsuspecting world.\r\n"
basic-deps:
  either: ! '>=4.4 && <4.5'
  split: ! '>=0.2 && <0.3'
  base: ! '>=4.10 && <4.11'
  filepath: ! '>=1.4 && <1.5'
  parsec: ! '>=3.1 && <3.2'
  HUnit: ! '>=1.6 && <1.7'
  containers: ! '>=0.5 && <0.6'
  lens: ! '>=4.15 && <4.16'
  mtl: ! '>=2.2 && <2.3'
  transformers: ! '>=0.5 && <0.6'
  template-haskell: ! '>=2.12 && <2.13'
  directory: ! '>=1.3 && <1.4'
all-versions:
- '0.1.0.0'
author: Boldizsar Nemeth
latest: '0.1.0.0'
description-type: haddock
description: ! 'A simple implementation of a C++ parser using Parsec. It is defined
  with a custom AST and parser.

  The basic idea was to create a C++ representation that keeps its connection with
  the original

  source code regardless of the preprocessor operations done on it. Each AST node
  that is expanded

  from a macro expansion records that fact and their transformations are constrained
  to protect

  the original structure of the program.

  A preprocessor implementation is given that tracks the macro expansions and this
  helps to create

  an AST where the nodes refer to the original source code from which they were generated.

  The MiniC module contains the entry point of the parser, the CTransform package
  provides a transformation of the AST.

  The C++ AST and parser and semantical analysis is defined in the MiniC package.

  Traversing utilities are defined in the Data package.

  General AST elements are defined in the SourceCode package.

  This is an early project of mine, the ideas behind this project are fully developed
  in the

  Haskell-Tools project. Regardless, this early experience led me to continue using
  this approach.

  By the way, this is an old project I am no longer developing.'
license-name: BSD3

Update from Hackage at 2017-11-16T06:12:03Z
Update from Hackage at 2017-11-16T06:12:03Z
