Repository: chimpler/pyhocon

Issue:
Syntax error while parsing variables of form include-blah-blah
Trying to parse the following config:
```
{
    include-other-stuff = true
}
```

with `conf = pyhocon.ConfigFactory.parse_file('/tmp/foo.conf')` results in the following stacktrace:

```
  File "/home/blah/blahblah.py", line 53, in <module>
    conf = pyhocon.ConfigFactory.parse_file('/tmp/foo.conf')
  File "/opt/anaconda3/lib/python3.4/site-packages/pyhocon/config_parser.py", line 48, in parse_file
    return ConfigFactory.parse_string(content, os.path.dirname(filename), resolve)
  File "/opt/anaconda3/lib/python3.4/site-packages/pyhocon/config_parser.py", line 87, in parse_string
    return ConfigParser().parse(content, basedir, resolve)
  File "/opt/anaconda3/lib/python3.4/site-packages/pyhocon/config_parser.py", line 269, in parse
    config = config_expr.parseString(content, parseAll=True)[0]
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 1125, in parseString
    raise exc
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 1115, in parseString
    loc, tokens = self._parse( instring, 0 )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2378, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2483, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2624, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2361, in parseImpl
    loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2369, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2624, in parseImpl
    return self.expr._parse( instring, loc, doActions, callPreParse=False )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2739, in parseImpl
    loc, tmptokens = self.expr._parse( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2483, in parseImpl
    ret = e._parse( instring, loc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 989, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/opt/anaconda3/lib/python3.4/site-packages/pyparsing.py", line 2374, in parseImpl
    raise ParseSyntaxException(pe)
pyparsing.ParseSyntaxException: Expected Re:('".*?"[ \t]*') (at char 13), (line:2, col:12)
```

Discussion:

Patch:
diff --git a/pyhocon/config_parser.py b/pyhocon/config_parser.py
index 9e20236..27366a5 100644
--- a/pyhocon/config_parser.py
+++ b/pyhocon/config_parser.py
@@ -236,7 +236,7 @@ class ConfigParser(object):
 
         value_expr = number_expr | true_expr | false_expr | null_expr | string_expr
 
-        include_expr = (Keyword("include", caseless=True).suppress() - (
+        include_expr = (Keyword("include", caseless=True).suppress() + (
             quoted_string | (
                 (Keyword('url') | Keyword('file')) - Literal('(').suppress() - quoted_string - Literal(')').suppress()))) \
             .setParseAction(include_config)


Test patch:
diff --git a/tests/test_config_parser.py b/tests/test_config_parser.py
index a0927f1..72d0114 100644
--- a/tests/test_config_parser.py
+++ b/tests/test_config_parser.py
@@ -1153,6 +1153,16 @@ class TestConfigParser(object):
             assert config['x'] == 42
             assert config['y'] == 42
 
+    def test_var_with_include_keyword(self):
+        config = ConfigFactory.parse_string(
+            """
+            include-database=true
+            """)
+
+        assert config == {
+            'include-database': True
+        }
+
     def test_substitution_override(self):
         config = ConfigFactory.parse_string(
             """