yacc

    0

    1답변

    저는 Decison 프로그래밍 언어의 (부분적인) 문법을 구현하기 위해 bison (3.0.4)과 lexer를 사용하고 있습니다. 나는 수업 내에있는 것만 구현하고 있습니다. 내 작업은 간단합니다. 모든 생산 규칙 (문자열)을 트리에 저장 한 다음 인쇄하십시오. 예를 들어 , 당신은 class Foo { Foo(int arg1) { some2 a; } }하

    0

    1답변

    현재 Decaf (프로그래밍 언어) 문법의 일부를 구현 중입니다. 여기 들소 코드의 관련 단편이다 그럼에도 불구하고 type: INT | ID | type LS RS ; local_var_decl: type ID SEMICOLON ; name: THIS | ID | na

    0

    1답변

    주어진 시리즈 내에서 특정 시퀀스를 식별 할 수 있는지 알고 싶습니다. lex은 3 개의 다른 토큰, 즉 START, AMINO, STOP을 생성한다. YACC에 의해 START으로 시작하고 일련의 AMINO 토큰을 가지고 STOP으로 끝나는 모든 시퀀스를 확인하고 싶습니다. 예 : START AMINO AMINO ... AMINO STOP 내가 전에 YA

    0

    2답변

    내가 뭔가를 '(',')','+','-','*','/', 정수와 및 던지기 (예를 x=3에 대한) assignement을 포함하는 유일한 표현을 가능하게 기본적인 계산기입니다 https://github.com/dabeaz/ply 에서 첫 번째 예제를 읽고있다 표현의 평가 (결과도 정수가 아닙니다. 예 : '3/4'). 나는 다음하지만 그것이 작동하지 않는

    0

    1답변

    내 파서에서 읽을 수 있습니다 파일이 있습니다 오류가 PRINT 토큰 주위에 발생하는 BEGINING. XXX XY-1. XXXX Y. XXXX Z. BODY. PRINT "Please enter a number?". END. 있는 test.txt를. 어휘 분석기에서 문자열 "Please enter a number?"이 제대로 처리

    0

    1답변

    나는 책에서 yacc의 간단한 예제를 작성하려고하지만 컴파일하는 동안 오류가 발생합니다. 여기 내 example.l입니다 : %{ #include "y.tab.h" %} %% a return(A); b return (B); . return(yytext[0]); \n return('\n'); %% int yywrap() {return 1;}

    1

    2답변

    이 문법은 연산자의 우선 순위를 지정 했음에도 불구하고 충돌을 일으켰습니다. 드래곤 책에서도 그런 방법으로 해결되었지만 (아래의 처음 7 행으로 구현 된 방식) 충돌은 여전히 ​​발생합니다! 다음은 이 yacc를 구현하는 코드입니다 %right THEN_KW %right ELSE_KW %left XOR_KW OR_KW %right '=' %left

    0

    1답변

    저는 flex와 bison을 사용하여 가상 프로그래밍 언어 용 구문 분석기를 만들고 있습니다. 유효하고 유효하지 않은 변수 이름이있을 것입니다. XXXX XY-1 // valid XXXXX Z // valid XXX Y // valid XXX 5Aet // invalid XXXX XXAB-Y // invalid 시작 부분의 x는 변수의 크기를 지

    -1

    1답변

    (shift 대 감소) 및 (reduce 대 reduce) LR 파서 충돌을 배웠습니다. (shift vs reduce) 충돌, 전도 교대. (감소 대 감소) 충돌이 발생하면 첫 번째 생산 규칙을 ​​수행하십시오. 왜 그런가 ?? 왜 시프트 및 첫 번째 프로덕션 규칙을 선택 하시겠습니까 ??

    0

    1답변

    그래서 flex/bison에 간단한 C 파서를 만들려고합니다. 함수 및 변수 선언과 구문 분석만을 구문 분석하면됩니다. 예() I이 .c 파일을 파싱 할 =하면 fopen을 yyin 사용 : #include <stdio.h> int main() { int firstNumber, secondNumber, sumOfTwoNumbers;