eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingStroustrup o C++ › Re: Stroustrup o C++
  • Data: 2019-01-14 10:48:51
    Temat: Re: Stroustrup o C++
    Od: AK <n...@n...net> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2019-01-14 10:06, AK wrote:
    > No bez jaj. Przeszkadzaja, gdyz tak wlasciwie nie dzialaja
    > w sizeof, a jedynie wprowadzaja w blad/konfuzje (8 zamiast 9)
    > developerow.
    > Nie powinny byc w sizeof dopuszczalne, tak jak nie jest
    > dopuszczalne dowolne wyrazenie (a jedynie consts expr) w
    > deklaracji rozmiaru tablicy, czy w dyrektywach preprocesora

    Mozna by to wprowadzic juz na poziomie gramatyki np. tak:

    Jest (ANSI-C/C99):

    /* (6.5.3) */
    unary_expression :
    postfix_expression ${action Actions.token0} |
    '++' unary_expression ${action Actions.prefix_increment_expression} |
    '--' unary_expression ${action Actions.prefix_decrement_expression} |
    /* unary_operator cast_expression */
    '&' cast_expression ${action Actions.address_expression} |
    '*' cast_expression ${action Actions.indirection_expression} |
    '+' cast_expression ${action Actions.unary_plus_expression} |
    '-' cast_expression ${action Actions.unary_minus_expression} |
    '~' cast_expression ${action Actions.bitwise_NOT_expression} |
    '!' cast_expression ${action Actions.logical_NOT_expression} |
    'sizeof' unary_expression ${action Actions.sizeof_expression} |
    'sizeof' '(' type_name ')' ${action Actions.sizeof_type_expression} ;

    Moglo by byc w rodzaju:

    /* (6.5.3) */
    sizeof_expression :
    postfix_expression ${action Actions.token0} |
    /* unary_operator cast_expression */
    '&' cast_expression ${action Actions.address_expression} |
    '*' cast_expression ${action Actions.indirection_expression} |
    '+' cast_expression ${action Actions.unary_plus_expression} |
    '-' cast_expression ${action Actions.unary_minus_expression} |
    '~' cast_expression ${action Actions.bitwise_NOT_expression} |
    '!' cast_expression ${action Actions.logical_NOT_expression} |
    'sizeof' sizeof_expression ${action Actions.sizeof_expression} |
    'sizeof' '(' type_name ')' ${action Actions.sizeof_type_expression} ;

    /* (6.5.3) */
    unary_expression :
    sizeof_expression ${action Actions.token0} |
    '++' unary_expression ${action Actions.prefix_increment_expression} |
    '--' unary_expression ${action Actions.prefix_decrement_expression} ;

    PS: Noi?
    PS1: Nie wiem czy by to nie zabuzylo priorytetu operatorow (nie chce mi
    sie sprawdzac, ale na 90% nie), ale nawet gdyby, to zawsze to mozna
    uskutecznic semantycznie (juz w AST).

    AK

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: