============================================
Numbers
============================================

04000
400
100n
0xffffffffn
0b00111n
0o1234n
0xa_b_c
0o1_1
0b1_000_000
1_2_3
12_3.4_5e6_7
0b1_000_000n
01
00000123

---

(program
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number))
  (expression_statement (number)))

============================================
Unicode identifiers
============================================

const últimaVez = 1
{ 県: '大阪府', '': '' }

---

(program
  (lexical_declaration (variable_declarator (identifier) (number)))
  (expression_statement
    (object
      (pair (property_identifier) (string (string_fragment)))
      (pair (string) (string)))))

==========================================
Strings containing comment-like content
==========================================

"//ok\n//what"

---

(program
  (expression_statement
    (string (string_fragment) (escape_sequence) (string_fragment))))

==========================================
Quote escaping
==========================================

"";
'';
"\"";
"a\"b";
'\'';
'a\'b';
"it's a tiny tiny world";
'"hello"';

---

(program
  (expression_statement (string))
  (expression_statement (string))
  (expression_statement (string (escape_sequence)))
  (expression_statement
    (string (string_fragment) (escape_sequence) (string_fragment)))
  (expression_statement (string (escape_sequence)))
  (expression_statement
    (string (string_fragment) (escape_sequence) (string_fragment)))
  (expression_statement (string (string_fragment)))
  (expression_statement (string (string_fragment))))

==========================================
Line continuations
==========================================

"hello\
world";

'hello\
world';

---

(program
  (expression_statement
    (string (string_fragment) (escape_sequence) (string_fragment)))
  (expression_statement
    (string (string_fragment) (escape_sequence) (string_fragment))))

============================================================
Non-standard unescaped newlines legal in TSX attributes
============================================================

"hello
world";

'hello
world';

---

(program
  (expression_statement (string (string_fragment)))
  (expression_statement (string (string_fragment))))

=========================================================
JSX strings with unescaped newlines for TSX attributes
=========================================================

<Element Attribute="hello
                    world"></Element>;

<Element Attribute='hello
                    world'></Element>;

---

(program
  (expression_statement
    (jsx_element
      (jsx_opening_element
        (identifier)
        (jsx_attribute (property_identifier) (string (string_fragment))))
      (jsx_closing_element
        (identifier))))
 (expression_statement
   (jsx_element
     (jsx_opening_element
       (identifier)
       (jsx_attribute (property_identifier) (string (string_fragment))))
     (jsx_closing_element
       (identifier)))))
