diff --git a/Syntaxes/Puppet.tmLanguage b/Syntaxes/Puppet.tmLanguage
index c1ffa67..0418356 100755
--- a/Syntaxes/Puppet.tmLanguage
+++ b/Syntaxes/Puppet.tmLanguage
@@ -157,14 +157,14 @@
end
- (?=,|\))
+ ,
name
meta.function.argument.default.puppet
patterns
include
- #parameter-default-types
+ #expression
@@ -203,11 +203,7 @@
include
- #strings
-
-
- include
- #variable
+ #expression
begin
@@ -246,15 +242,57 @@
repository
+ arrays
+
+ patterns
+
+
+ begin
+ \[
+ end
+ \]
+ name
+ meta.structure.array.puppet
+ patterns
+
+
+ include
+ #expression
+
+
+
+
+
+ bracket-exp
+
+ patterns
+
+
+ begin
+ \(
+ end
+ \)
+ name
+ meta.group.braces.round
+ patterns
+
+
+ include
+ #expression
+
+
+
+
+
constants
patterns
match
- (?i)\b(false|true|running|present|absent|file|directory)\b
+ (?i)\b(false|true|running|undef|present|absent|file|directory)\b
name
- constant.language.php
+ constant.language.puppet
@@ -301,261 +339,152 @@
name
constant.character.escape.puppet
- line_comment
-
- patterns
-
-
- captures
-
- 1
-
- name
- comment.line.number-sign.puppet
-
- 2
-
- name
- punctuation.definition.comment.puppet
-
-
- match
- ^((#).*$\n?)
- name
- meta.comment.full-line.puppet
-
-
- captures
-
- 1
-
- name
- punctuation.definition.comment.puppet
-
-
- match
- (#).*$\n?
- name
- comment.line.number-sign.puppet
-
-
-
- nested_braces
+ expression
- begin
- \{
- captures
-
- 1
-
- name
- punctuation.section.scope.puppet
-
-
- end
- \}
patterns
include
- #escaped_char
-
-
- include
- #nested_braces
-
-
-
- nested_braces_interpolated
-
- begin
- \{
- captures
-
- 1
-
- name
- punctuation.section.scope.puppet
+ #constants
-
- end
- \}
- patterns
-
include
- #escaped_char
+ #strings
include
- #variable
+ #numbers
include
- #nested_braces_interpolated
+ #arrays
-
-
- nested_brackets
-
- begin
- \[
- captures
-
- 1
-
- name
- punctuation.section.scope.puppet
-
-
- end
- \]
- patterns
-
include
- #escaped_char
+ #hashes
include
- #nested_brackets
-
-
-
- nested_brackets_interpolated
-
- begin
- \[
- captures
-
- 1
-
- name
- punctuation.section.scope.puppet
+ #variable
-
- end
- \]
- patterns
-
include
- #escaped_char
+ #function-call
include
- #variable
+ #resource-reference
include
- #nested_brackets_interpolated
+ #bracket-exp
- nested_parens
+ function-call
- begin
- \(
- captures
-
- 1
-
- name
- punctuation.section.scope.puppet
-
-
- end
- \)
patterns
- include
- #escaped_char
-
-
- include
- #nested_parens
+ begin
+ ([a-z][a-z0-9_]*)\(
+ beginCaptures
+
+ 1
+
+ name
+ meta.function-call.function-name.puppet
+
+
+ contentName
+ meta.function-call.arguments.puppet
+ end
+ \)
+ name
+ meta.function-call.puppet
+ patterns
+
+
+ include
+ #expression
+
+
- nested_parens_interpolated
+ hashes
- begin
- \(
- captures
-
- 1
-
- name
- punctuation.section.scope.puppet
-
-
- end
- \)
patterns
- include
- #escaped_char
-
-
- include
- #variable
-
-
- include
- #nested_parens_interpolated
+ begin
+ \{
+ end
+ \}
+ name
+ meta.structure.hash.puppetbracket-exp
+ patterns
+
+
+ include
+ #line_comment
+
+
+ include
+ #expression
+
+
- parameter-default-types
+ line_comment
patterns
- include
- #strings
-
-
- match
- =
- name
- keyword.operator.assignment.php
-
-
- begin
- (\[)
- beginCaptures
+ captures
1
name
- punctuation.definition.array.begin.puppet
+ comment.line.number-sign.puppet
-
- end
- \]
- endCaptures
-
- 0
+ 2
name
- punctuation.definition.array.end.puppet
+ punctuation.definition.comment.puppet
+ match
+ ^((#).*$\n?)
name
- meta.array.php
- patterns
-
+ meta.comment.full-line.puppet
+
+
+ captures
+
+ 1
- include
- #parameter-default-types
+ name
+ punctuation.definition.comment.puppet
-
+
+ match
+ (#).*$\n?
+ name
+ comment.line.number-sign.puppet
+
+
+ numbers
+
+ patterns
+
- include
- #constants
+ match
+ -?\d+(?:\.\d+)?
+ name
+ constant.numeric.puppet