diff --git a/src/compiler/syntax/parser.js b/src/compiler/syntax/parser.js index e6aa6c7..b74937e 100644 --- a/src/compiler/syntax/parser.js +++ b/src/compiler/syntax/parser.js @@ -1740,22 +1740,22 @@ const ternaryOperator = (parser) => { parse( '(', opt(_), simpleExpression, opt(_), ')', alt(parse(noSpace, '?', noSpace), parse(_, '?', _)), alt(prefixAtom, atom), - alt(parse(noSpace, '||', noSpace), parse(_, '||', _)), primitiveExpression, + alt(parse(noSpace, ':', noSpace), parse(_, ':', _)), primitiveExpression, ), parse( '(', nextCodeLine, indent, simpleExpression, nextCodeLine, dedent, ')', alt(parse(noSpace, '?', noSpace), parse(_, '?', _)), alt(prefixAtom, atom), - alt(parse(noSpace, '||', noSpace), parse(_, '||', _)), primitiveExpression, + alt(parse(noSpace, ':', noSpace), parse(_, ':', _)), primitiveExpression, ), parse( '(', opt(_), simpleExpression, opt(_), ')', alt(parse(noSpace, '?', noSpace), parse(_, '?', _)), primitiveExpression, - alt(parse(noSpace, '||', noSpace), parse(_, '||', _)), primitiveExpression, + alt(parse(noSpace, ':', noSpace), parse(_, ':', _)), primitiveExpression, ), parse( '(', nextCodeLine, indent, simpleExpression, nextCodeLine, dedent, ')', alt(parse(noSpace, '?', noSpace), parse(_, '?', _)), primitiveExpression, - alt(parse(noSpace, '||', noSpace), parse(_, '||', _)), primitiveExpression, + alt(parse(noSpace, ':', noSpace), parse(_, ':', _)), primitiveExpression, ), )(parser); diff --git a/src/compiler/syntax/parser_test_2.js b/src/compiler/syntax/parser_test_2.js index e810f4c..7ec740d 100644 --- a/src/compiler/syntax/parser_test_2.js +++ b/src/compiler/syntax/parser_test_2.js @@ -4508,11 +4508,11 @@ test( ); print('============== TERNARYOPERATOR =============='); -lexer = new Lexer('(5_000)? 0b10.001 || 0x7_EFF8'); +lexer = new Lexer('(5_000)? 0b10.001 : 0x7_EFF8'); parser = new Parser(lexer.lex().tokens); result = ternaryOperator(parser); test( - String.raw`(5_000)? 0b10.001 || 0x7_EFF8--------->FAIL`, + String.raw`(5_000)? 0b10.001 : 0x7_EFF8--------->FAIL`, { parser: { tokenPosition: parser.tokenPosition, @@ -4537,11 +4537,11 @@ test( }, ); -lexer = new Lexer('(5_000) ? 0b10.001 ||0x7_EFF8'); +lexer = new Lexer('(5_000) ? 0b10.001 :0x7_EFF8'); parser = new Parser(lexer.lex().tokens); result = ternaryOperator(parser); test( - String.raw`(5_000)? 0b10.001 ||0x7_EFF8--------->FAIL`, + String.raw`(5_000)? 0b10.001 ;0x7_EFF8--------->FAIL`, { parser: { tokenPosition: parser.tokenPosition, @@ -4566,11 +4566,11 @@ test( }, ); -lexer = new Lexer('(5_000) ? 0b10.001 || 0x7_EFF8'); +lexer = new Lexer('(5_000) ? 0b10.001 : 0x7_EFF8'); parser = new Parser(lexer.lex().tokens); result = ternaryOperator(parser); test( - String.raw`(5_000) ? 0b10.001 || 0x7_EFF8`, + String.raw`(5_000) ? 0b10.001 : 0x7_EFF8`, { parser: { tokenPosition: parser.tokenPosition, @@ -4581,7 +4581,7 @@ test( { parser: { tokenPosition: 6, - column: 30, + column: 29, }, result: { success: true, @@ -4604,11 +4604,11 @@ test( }, ); -lexer = new Lexer('( \n 5_000\n) ? 0b10.001 || 0x7_EFF8'); +lexer = new Lexer('( \n 5_000\n) ? 0b10.001 : 0x7_EFF8'); parser = new Parser(lexer.lex().tokens); result = ternaryOperator(parser); test( - String.raw`( \n 5_000\n) ? 0b10.001 || 0x7_EFF8`, + String.raw`( \n 5_000\n) ? 0b10.001 : 0x7_EFF8`, { parser: { tokenPosition: parser.tokenPosition, @@ -4619,7 +4619,7 @@ test( { parser: { tokenPosition: 8, - column: 38, + column: 37, }, result: { success: true, @@ -4642,12 +4642,12 @@ test( }, ); -lexer = new Lexer('( \n 5_000\n) ? +0b10.001||0x7_EFF8'); +lexer = new Lexer('( \n 5_000\n) ? +0b10.001:0x7_EFF8'); parser = new Parser(lexer.lex().tokens); result = ternaryOperator(parser); print(result); test( - String.raw`( \n 5_000\n) ? +0b10.001||0x7_EFF8`, + String.raw`( \n 5_000\n) ? +0b10.001:0x7_EFF8`, { parser: { tokenPosition: parser.tokenPosition, @@ -4658,7 +4658,7 @@ test( { parser: { tokenPosition: 9, - column: 37, + column: 36, }, result: { success: true, diff --git a/src/compiler/syntax/parser_test_3.js b/src/compiler/syntax/parser_test_3.js index ebb1b3c..b0e2b40 100644 --- a/src/compiler/syntax/parser_test_3.js +++ b/src/compiler/syntax/parser_test_3.js @@ -1793,11 +1793,11 @@ test( }, ); -lexer = new Lexer('(2) ? 4 || 7'); +lexer = new Lexer('(2) ? 4 : 7'); parser = new Parser(lexer.lex().tokens); result = simpleExpression(parser); test( - String.raw`(2) ? 4 || 7`, + String.raw`(2) ? 4 : 7`, { parser: { tokenPosition: parser.tokenPosition, @@ -1808,7 +1808,7 @@ test( { parser: { tokenPosition: 6, - column: 12, + column: 11, }, result: { success: true, @@ -1877,7 +1877,7 @@ test( }, ); -lexer = new Lexer('1 + 2, \n(2) ? 4 || 5_000'); +lexer = new Lexer('1 + 2, \n(2) ? 4 : 5_000'); parser = new Parser(lexer.lex().tokens); result = tupleExpression(parser); test( @@ -1892,7 +1892,7 @@ test( { parser: { tokenPosition: 11, - column: 24, + column: 23, }, result: { success: true,