Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / dll / win32 / jscript / cc_parser.y
diff --git a/reactos/dll/win32/jscript/cc_parser.y b/reactos/dll/win32/jscript/cc_parser.y
deleted file mode 100644 (file)
index d06ba7c..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright 2014 Jacek Caban for CodeWeavers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-%{
-
-#include "jscript.h"
-
-%}
-
-%lex-param { parser_ctx_t *ctx }
-%parse-param { parser_ctx_t *ctx }
-%pure-parser
-%start CCExpr
-
-%union {
-    ccval_t ccval;
-}
-
-%token tEQ tEQEQ tNEQ tNEQEQ tLSHIFT tRSHIFT tRRSHIFT tOR tAND tLEQ tGEQ
-%token <ccval> tCCValue
-
-%type <ccval> CCUnaryExpression CCLogicalORExpression CCLogicalANDExpression
-%type <ccval> CCBitwiseORExpression CCBitwiseXORExpression CCBitwiseANDExpression
-%type <ccval> CCEqualityExpression CCRelationalExpression CCShiftExpression CCAdditiveExpression CCMultiplicativeExpression
-
-%{
-
-static int cc_parser_error(parser_ctx_t *ctx, const char *str)
-{
-    if(SUCCEEDED(ctx->hres)) {
-        WARN("%s\n", str);
-        ctx->hres = JS_E_SYNTAX;
-    }
-
-    return 0;
-}
-
-static int cc_parser_lex(void *lval, parser_ctx_t *ctx)
-{
-    int r;
-
-    r = try_parse_ccval(ctx, lval);
-    if(r)
-        return r > 0 ? tCCValue : -1;
-
-    switch(*ctx->ptr) {
-    case '(':
-    case ')':
-    case '+':
-    case '-':
-    case '*':
-    case '/':
-    case '~':
-    case '%':
-    case '^':
-        return *ctx->ptr++;
-    case '=':
-         if(*++ctx->ptr == '=') {
-             if(*++ctx->ptr == '=') {
-                 ctx->ptr++;
-                 return tEQEQ;
-             }
-             return tEQ;
-         }
-         break;
-    case '!':
-        if(*++ctx->ptr == '=') {
-            if(*++ctx->ptr == '=') {
-                ctx->ptr++;
-                return tNEQEQ;
-            }
-            return tNEQ;
-        }
-        return '!';
-    case '<':
-        switch(*++ctx->ptr) {
-        case '<':
-            ctx->ptr++;
-            return tLSHIFT;
-        case '=':
-            ctx->ptr++;
-            return tLEQ;
-        default:
-            return '<';
-        }
-    case '>':
-        switch(*++ctx->ptr) {
-        case '>':
-            if(*++ctx->ptr == '>') {
-                ctx->ptr++;
-                return tRRSHIFT;
-            }
-            return tRSHIFT;
-        case '=':
-            ctx->ptr++;
-            return tGEQ;
-        default:
-            return '>';
-        }
-    case '|':
-        if(*++ctx->ptr == '|') {
-            ctx->ptr++;
-            return tOR;
-        }
-        return '|';
-    case '&':
-        if(*++ctx->ptr == '&') {
-            ctx->ptr++;
-            return tAND;
-        }
-        return '&';
-    }
-
-    WARN("Failed to interpret %s\n", debugstr_w(ctx->ptr));
-    return -1;
-}
-
-%}
-
-%%
-
-/* FIXME: Implement missing expressions. */
-
-CCExpr
-    : CCUnaryExpression { ctx->ccval = $1; YYACCEPT; }
-
-CCUnaryExpression
-    : tCCValue                      { $$ = $1; }
-    | '(' CCLogicalORExpression ')' { $$ = $2; }
-    | '!' CCUnaryExpression         { $$ = ccval_bool(!get_ccbool($2)); };
-    | '~' CCUnaryExpression         { FIXME("'~' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-    | '+' CCUnaryExpression         { FIXME("'+' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-    | '-' CCUnaryExpression         { FIXME("'-' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCLogicalORExpression
-    : CCLogicalANDExpression        { $$ = $1; }
-    | CCLogicalORExpression tOR CCLogicalANDExpression
-                                    { FIXME("'||' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCLogicalANDExpression
-    : CCBitwiseORExpression         { $$ = $1; }
-    | CCBitwiseANDExpression tAND CCBitwiseORExpression
-                                    { FIXME("'&&' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCBitwiseORExpression
-    : CCBitwiseXORExpression        { $$ = $1; }
-    | CCBitwiseORExpression '|' CCBitwiseXORExpression
-                                    { FIXME("'|' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCBitwiseXORExpression
-    : CCBitwiseANDExpression        { $$ = $1; }
-    | CCBitwiseXORExpression '^' CCBitwiseANDExpression
-                                    { FIXME("'^' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCBitwiseANDExpression
-    : CCEqualityExpression          { $$ = $1; }
-    | CCBitwiseANDExpression '&' CCEqualityExpression
-                                    { FIXME("'&' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCEqualityExpression
-    : CCRelationalExpression        { $$ = $1; }
-    | CCEqualityExpression tEQ CCRelationalExpression
-                                    { $$ = ccval_bool(get_ccnum($1) == get_ccnum($3)); }
-    | CCEqualityExpression tNEQ CCRelationalExpression
-                                    { $$ = ccval_bool(get_ccnum($1) != get_ccnum($3)); }
-    | CCEqualityExpression tEQEQ CCRelationalExpression
-                                    { FIXME("'===' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-    | CCEqualityExpression tNEQEQ CCRelationalExpression
-                                    { FIXME("'!==' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCRelationalExpression
-    : CCShiftExpression             { $$ = $1; }
-    | CCRelationalExpression '<' CCShiftExpression
-                                    { $$ = ccval_bool(get_ccnum($1) < get_ccnum($3)); }
-    | CCRelationalExpression tLEQ CCShiftExpression
-                                    { $$ = ccval_bool(get_ccnum($1) <= get_ccnum($3)); }
-    | CCRelationalExpression '>' CCShiftExpression
-                                    { $$ = ccval_bool(get_ccnum($1) > get_ccnum($3)); }
-    | CCRelationalExpression tGEQ CCShiftExpression
-                                    { $$ = ccval_bool(get_ccnum($1) >= get_ccnum($3)); }
-
-CCShiftExpression
-    : CCAdditiveExpression          { $$ = $1; }
-    | CCShiftExpression tLSHIFT CCAdditiveExpression
-                                    { FIXME("'<<' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-    | CCShiftExpression tRSHIFT CCAdditiveExpression
-                                    { FIXME("'>>' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-    | CCShiftExpression tRRSHIFT CCAdditiveExpression
-                                    { FIXME("'>>>' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-CCAdditiveExpression
-    : CCMultiplicativeExpression    { $$ = $1; }
-    | CCAdditiveExpression '+' CCMultiplicativeExpression
-                                    { $$ = ccval_num(get_ccnum($1) + get_ccnum($3)); }
-    | CCAdditiveExpression '-' CCMultiplicativeExpression
-                                    { $$ = ccval_num(get_ccnum($1) - get_ccnum($3)); }
-
-CCMultiplicativeExpression
-    : CCUnaryExpression             { $$ = $1; }
-    | CCMultiplicativeExpression '*' CCUnaryExpression
-                                    { $$ = ccval_num(get_ccnum($1) * get_ccnum($3)); }
-    | CCMultiplicativeExpression '/' CCUnaryExpression
-                                    { $$ = ccval_num(get_ccnum($1) / get_ccnum($3)); }
-    | CCMultiplicativeExpression '%' CCUnaryExpression
-                                    { FIXME("'%%' expression not implemented\n"); ctx->hres = E_NOTIMPL; YYABORT; }
-
-%%
-
-BOOL parse_cc_expr(parser_ctx_t *ctx)
-{
-    ctx->hres = S_OK;
-    cc_parser_parse(ctx);
-    return SUCCEEDED(ctx->hres);
-}