text: module.exports = function( grunt ) {
  
  	grunt.initConfig( {
  
  		// Import package manifest
  		pkg: grunt.file.readJSON( "package.json" ),
  
  		// Banner definitions
  		meta: {
  			banner: "/*\n" +
  				" *  CARRE Risk Evidence Condition Parser\n" +
  				" *\n" +
  				" *  Originally made by George Drosatos in Java\n" +
  				" *  Converted into Javascript by Nick Portokallidis\n" +
  				" *  Under <%= pkg.license %> License\n" +
  				" */\n"
  		},
  
  		// Concat definitions
  		concat: {
  			options: {
  				banner: "<%= meta.banner %>"
  			},
  			dist: {
  				src: [ "src/risk_evidence_condition_parser.js" ],
  				dest: "dist/risk_evidence_condition_parser.js"
  			}
  		},
  
  		// Lint definitions
  		jshint: {
  			files: [ "src/risk_evidence_condition_parser.js"],
  			options: {
  				jshintrc: ".jshintrc"
  			}
  		},
  
  		jscs: {
  			src: "src/**/*.js",
  			options: {
  				config: ".jscsrc"
  			}
  		},
  
  		// Minify definitions
  		uglify: {
  			dist: {
  				src: [ "dist/risk_evidence_condition_parser.js" ],
  				dest: "dist/risk_evidence_condition_parser.min.js"
  			},
  			options: {
  				banner: "<%= meta.banner %>"
  			}
  		},
  
  		// CoffeeScript compilation
  		coffee: {
  			compile: {
  				files: {
  					"dist/risk_evidence_condition_parser.js": "src/risk_evidence_condition_parser.coffee"
  				}
  			}
  		},
  
  		// watch for changes to source
  		// Better than calling grunt a million times
  		// (call 'grunt watch')
  		watch: {
  			files: [ "src/*", "test/**/*" ],
  			tasks: [ "default" ]
  		}
  
  	} );
  
  	grunt.loadNpmTasks( "grunt-contrib-concat" );
  	grunt.loadNpmTasks( "grunt-contrib-jshint" );
  	grunt.loadNpmTasks( "grunt-jscs" );
  	grunt.loadNpmTasks( "grunt-contrib-uglify" );
  	grunt.loadNpmTasks( "grunt-contrib-coffee" );
  	grunt.loadNpmTasks( "grunt-contrib-watch" );
  
  	grunt.registerTask( "travis", [ "jshint" ] );
  	grunt.registerTask( "lint", [ "jshint", "jscs" ] );
  	grunt.registerTask( "build", [ "concat", "uglify" ] );
  	grunt.registerTask( "default", [ "jshint", "build"] );
  };
  