Приведение грамматики Ассемблера

Discussion in 'WASM.ASSEMBLER' started by Freecod, Dec 19, 2007.

  1. Freecod

    Freecod New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2006
    Messages:
    136
    Вообще тут с теорией ЯП туго, но может кто-то встречал... В конуе концов такой язык как асм должны же были стандартизировать!
    Ищю приведение грамматики для языка ассемблер (масм, но это не суть важно)
    Выглядит это примерно так:

    Исходная грамматика G = (N, Т ,P,S):
    N={
    <программа> <секция описания данных> <описание данных> <список данных> <секция описания неинициализированных данных> <описание неинициализированных данных> <список неинициализированных данных > ...
    }

    Т={
    ( ) [ ] - + * \ , ; :
    .386 .486 .586 .686 include includelib PROTO dword word byte .data db dd dw dup .data? .code
    mov cmp je jne jmp push pop offset sizeof addr invoke call NULL ret local endp end ptr add sub xor or inc dec lea shl shr div mul ptr eax ecx edx ebx esp ebp ax cx dx bx al cl dl bl ah ch dh bh edi esi div mul ptr ...
    }

    P={
    1. <программа> -> < секция описания данных><секция описания неинициализированных данных> <секция команд><блок start>
    2. <секция описания данных> -> data<описание типов данных>|h
    3. <описание данных> -> <список данных>
    ...

    S={<программа>}

    Устранение недостижимых символов
    V0 = { <proc_type> }
    ...

    Или мне это первому млин приходится проделывать?
     
  2. Stiver

    Stiver Партизан дзена

    Blog Posts:
    0
    Joined:
    Dec 18, 2004
    Messages:
    812
    Location:
    Germany
  3. Freecod

    Freecod New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2006
    Messages:
    136
    БНФ пригодится, спасибо, но это уже пройденый этап. Нужны правила, составленные на основе БНФ.
     
  4. Stiver

    Stiver Партизан дзена

    Blog Posts:
    0
    Joined:
    Dec 18, 2004
    Messages:
    812
    Location:
    Germany
    Freecod
    Как найдешь, отпишись здесь. На основе БНФ ничего нет, с нее парсер пишут.