Skip to content

Commit

Permalink
Parser: test formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanjermakov committed Jun 4, 2023
1 parent bde372e commit ec3175e
Showing 1 changed file with 56 additions and 37 deletions.
93 changes: 56 additions & 37 deletions src/parser/parser.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,54 +105,73 @@ describe('parser', () => {

it('parse expr1', () => {
const rule = parseToken('(foo(12) / 4)', 'expr')

const foo = { 'name': 'operand', 'nodes': [{ 'name': 'identifier', 'value': 'foo' }] }
const callOp = {
'name': 'postfix-op', 'nodes': [{
'name': 'call-op', 'nodes': [{ 'name': 'open-paren', 'value': '(' }, {
'name': 'args',
'nodes': [{
'name': 'expr',
'nodes': [{ 'name': 'operand', 'nodes': [{ 'name': 'number', 'value': '12' }] }]
}]
}, { 'name': 'close-paren', 'value': ')' }]
}]
}

const divOp = { 'name': 'infix-operator', 'nodes': [{ 'name': 'slash', 'value': '/' }] }
const op4 = {
'name': 'operand',
'nodes': [{ 'name': 'number', 'value': '4' }]
}
expect(compactToken(rule!)).toEqual({
'name': 'expr', 'nodes': [{
'name': 'operand', 'nodes': [{ 'name': 'open-paren', 'value': '(' }, {
'name': 'expr',
'nodes': [{ 'name': 'operand', 'nodes': [{ 'name': 'identifier', 'value': 'foo' }] }, {
'name': 'postfix-op', 'nodes': [{
'name': 'call-op', 'nodes': [{ 'name': 'open-paren', 'value': '(' }, {
'name': 'args',
'nodes': [{
'name': 'expr',
'nodes': [{ 'name': 'operand', 'nodes': [{ 'name': 'number', 'value': '12' }] }]
}]
}, { 'name': 'close-paren', 'value': ')' }]
}]
}, { 'name': 'infix-operator', 'nodes': [{ 'name': 'slash', 'value': '/' }] }, {
'name': 'operand',
'nodes': [{ 'name': 'number', 'value': '4' }]
}]
'nodes': [foo, callOp, divOp, op4]
}, { 'name': 'close-paren', 'value': ')' }]
}]
})
})

it('parse expr2', () => {
xit('parse expr2', () => {
const rule = parseToken('(foo(12) / 4) * "str".ok()', 'expr')
expect(compactToken(rule!)).toEqual({
'name': 'expr', 'nodes': [{
'name': 'operand', 'nodes': [{ 'name': 'open-paren', 'value': '(' }, {
'name': 'expr',
'nodes': [{ 'name': 'operand', 'nodes': [{ 'name': 'identifier', 'value': 'foo' }] }, {
'name': 'postfix-op', 'nodes': [{
'name': 'call-op', 'nodes': [{ 'name': 'open-paren', 'value': '(' }, {
'name': 'args',
'nodes': [{
'name': 'expr',
'nodes': [{ 'name': 'operand', 'nodes': [{ 'name': 'number', 'value': '12' }] }]
}]
}, { 'name': 'close-paren', 'value': ')' }]
}]
}, { 'name': 'infix-operator', 'nodes': [{ 'name': 'slash', 'value': '/' }] }, {
'name': 'operand',
'nodes': [{ 'name': 'number', 'value': '4' }]
}]
}, { 'name': 'close-paren', 'value': ')' }]
}, { 'name': 'infix-operator', 'nodes': [{ 'name': 'asterisk', 'value': '*' }] }, {
'name': 'operand',
'nodes': [{ 'name': 'string', 'value': '"str"' }]
}]
'name': 'expr', 'nodes': [
{
'name': 'operand', 'nodes': [
{ 'name': 'open-paren', 'value': '(' },
{
'name': 'expr',
'nodes': [
{ 'name': 'operand', 'nodes': [{ 'name': 'identifier', 'value': 'foo' }] },
{
'name': 'postfix-op', 'nodes': [
{
'name': 'call-op', 'nodes': [
{ 'name': 'open-paren', 'value': '(' },
{
'name': 'args', 'nodes': [
{
'name': 'expr',
'nodes': [{
'name': 'operand',
'nodes': [{ 'name': 'number', 'value': '12' }]
}]
}
]
}, { 'name': 'close-paren', 'value': ')' }]
}]
},
{ 'name': 'infix-operator', 'nodes': [{ 'name': 'slash', 'value': '/' }] },
{ 'name': 'operand', 'nodes': [{ 'name': 'number', 'value': '4' }] }
]
},
{ 'name': 'close-paren', 'value': ')' }]
},
{ 'name': 'infix-operator', 'nodes': [{ 'name': 'asterisk', 'value': '*' }] },
{ 'name': 'operand', 'nodes': [{ 'name': 'string', 'value': '"str"' }] }
]
})
})

Expand Down

0 comments on commit ec3175e

Please sign in to comment.