diff --git a/mlir/docs/LangRef.md b/mlir/docs/LangRef.md
--- a/mlir/docs/LangRef.md
+++ b/mlir/docs/LangRef.md
@@ -279,17 +279,18 @@
 Syntax:
 
 ```
-operation         ::= op-result-list? (generic-operation | custom-operation)
-                      trailing-location?
-generic-operation ::= string-literal `(` value-use-list? `)`  successor-list?
-                      (`(` region-list `)`)? dictionary-attribute? `:` function-type
-custom-operation  ::= bare-id custom-operation-format
-op-result-list    ::= op-result (`,` op-result)* `=`
-op-result         ::= value-id (`:` integer-literal)
-successor-list    ::= successor (`,` successor)*
-successor         ::= caret-id (`:` bb-arg-list)?
-region-list       ::= region (`,` region)*
-trailing-location ::= (`loc` `(` location `)`)?
+operation            ::= op-result-list? (generic-operation | custom-operation)
+                         trailing-location?
+generic-operation    ::= string-literal `(` value-use-list? `)`  successor-list?
+                         region-list? dictionary-attribute? `:` function-type
+custom-operation     ::= bare-id custom-operation-format
+op-result-list       ::= op-result (`,` op-result)* `=`
+op-result            ::= value-id (`:` integer-literal)
+successor-list       ::= `[` successor (`,` successor)* `]`
+successor            ::= caret-id (`:` bb-arg-list)?
+region-list          ::= `(` region (`,` region)* `)`
+dictionary-attribute ::= `{` (attribute-entry (`,` attribute-entry)*)? `}`
+trailing-location    ::= (`loc` `(` location `)`)?
 ```
 
 MLIR introduces a uniform concept called _operations_ to enable describing