Diffdown is a real-time collaborative Markdown editor/previewer built on the AT Protocol
diffdown.com
1# No semicolons
2
3x
4if (a) {
5 var b = c
6 d
7} else
8 e
9
10==>
11
12Script(
13 ExpressionStatement(VariableName),
14 IfStatement(if,ParenthesizedExpression(VariableName),Block(
15 VariableDeclaration(var,VariableDefinition,Equals,VariableName),
16 ExpressionStatement(VariableName)),
17 else,ExpressionStatement(VariableName)))
18
19# Continued expressions on new line
20
21x
22+ 2
23foo
24(bar)
25
26==>
27
28Script(
29 ExpressionStatement(BinaryExpression(VariableName,ArithOp,Number)),
30 ExpressionStatement(CallExpression(VariableName,ArgList(VariableName))))
31
32# Doesn't parse postfix ops on a new line
33
34x
35++y
36
37==>
38
39Script(
40 ExpressionStatement(VariableName),
41 ExpressionStatement(UnaryExpression(ArithOp,VariableName)))
42
43# Eagerly cut return/break/continue
44
45return 2
46return
472
48continue foo
49continue
50foo
51break bar
52break
53bar
54
55==>
56
57Script(
58 ReturnStatement(return,Number),
59 ReturnStatement(return),
60 ExpressionStatement(Number),
61 ContinueStatement(continue,Label),
62 ContinueStatement(continue),
63 ExpressionStatement(VariableName),
64 BreakStatement(break,Label),
65 BreakStatement(break),
66 ExpressionStatement(VariableName))
67
68# Cut return regardless of whitespace
69
70{ return }
71
72return // foo
73;
74
75==>
76
77Script(Block(ReturnStatement(return)),ReturnStatement(return,LineComment))