Commit Graph

8 Commits

Author SHA1 Message Date
Rintaro Ishizaki 6c0af2a24f [Syntax] Introduce CodeBlockItem (#14458)
CodeBlockItem represents Decl, Stmt or Expr that optionally followed by
semi-colon.
SourceFile syntax holds a list of CodeBlockItem.
2018-02-08 10:31:01 +09:00
Rintaro Ishizaki fced748790 [Syntax] Represent missing optioanl nodes as nullptr (#14300)
Allocating RawSyntax/SyntaxData for missing optional node is a waste of
resource.
2018-01-31 19:24:00 +09:00
Rintaro Ishizaki d48a2a4071 [JSONSerialization] Compact output for empty objects and arrays
Now, they are represented as `{}` and `[]` instead of:
  {

  }
and
  [

  ]
2018-01-30 15:40:17 +09:00
Xi Ge c4604d700e libSyntax: specialize struct declaration syntax node. (#13307)
To construct struct syntax, this patch first specialized type
inheritance clause. For protocol's class requirement, we currently
treat it as an unknown type.

This patch also teaches SyntaxParsingContext to collect syntax nodes
from back in place. This is useful to squash multiple decl modifiers
for declarations like function. This is not used for struct declaration
because only accessibility modifier is allowed.
2017-12-06 14:12:12 -08:00
Xi Ge 9cd54c45f6 libSyntax: encapsulate members of a struct declaration into MemberDeclBlock. (#13193) 2017-12-01 09:19:13 -08:00
Harlan Haskins 9732442628 [Syntax] Remove LegacyASTTransformer
As it is no longer ever instantiated, and since Syntax nodes are being
plumbed through the parser, the LegacyASTTransformer no longer needs to
exist.
2017-11-29 17:51:57 -05:00
Harlan Haskins a273ca405d [Syntax] Don't serialize text for simple tokens
The text for tok::kw_struct, and similar, are always known.
Save space by not serializing them.
2017-06-20 15:43:34 -07:00
Harlan 0cc8132425 [Syntax] Serialize top level decls as an array (#10405)
* Serialize TopLevelDecls as an array of raw syntax nodes, instead of one-after-another.

* Add tests for multiple decls

* Remove extra newlines from test inputs
2017-06-20 14:48:06 -07:00