flex(4)
-
[Compiler] Lex 파일 이해하기
Compiler miro.com 1. Lex 파일 이해하기 가. Lex(Flex)의 입력 파일 형식 Lex(Flex)와 Yacc(Bison)의 입력 파일 모두 크게 세 부분으로 구성되어 있다. 첫 번째 부분은 선언(declaration)이나 정의(definition)를 포함한다. 두 번째 부분은 규칙(보통 번역 규칙(translation rule))을 기술한다. 세 번째 부분은 보조 프로시저(auxiliary procedure) 또는 지원 프로그램(supporting routines)를 담고 있다. 두 번째 부분은 필수고, 첫 번째, 세 번째 부분은 필요가 없는 경우 생략할 수 있다. 첫 번째, 두 번째, 세 번째는 사이에 '%%'기호로 구분한다. 예를 들어 설명해 보면… yymore() "+" { re..
2023.04.07 -
[Compiler] Flex 실습
Compiler miro.com 1. 실습 목표 PROGRAM SAMPLE ; CONST M = 5 ; N = 9 ; VAR SUM, MUL : INTEGER ; BEGIN SUM := M + N ; MUL := M * N ; END. Pascal 코드의 줄 번호를 붙이는 Scanner 만들기. 2. scanner.l %{ int lineno = 1; %} %% \n {lineno++; ECHO;} ^.*$ printf("%d\t%s", lineno, yytext); scanner.l 작성. yytest : flex, lex에서 토큰(문자 배열 char array)을 저장하는 버퍼 ECHO : printf("%s", yytext)와 동일한 결과. 출력하는 일이 빈번해서 매크로로 정의하여 제공. flex ..
2023.03.31 -
[Compiler] 실습 준비(Windows)
1. 컴파일러-컴파일러 컴파일러 컴파일러(Compiler-compiler)는 컴파일러를 만들기 위한 컴파일러를 의미한다. 일반적으로 컴파일러는 어떠한 프로그래밍 언어로 쓰인 원시 코드(source code)를 분석 파일(object file)로 변환하는 기능을 하는 프로그램을 의미하지만 그 컴파일러를 만들려면 엄청난 기술적 구현 능력과 고생이 요구된다. 그래서 컴파일러 그 자체 또는 컴파일러가 제공하는 구문 분석 기능을 자동으로 만드는 프로그램으로 컴파일러 컴파일러를 고안하여 개발하였다. 출처 : https://ko.wikipedia.org/wiki/컴파일러_컴파일러 2. 어휘 분석기 생성기 가. Lex Lex는 컴퓨터 과학 분야에서 구문 분석기인 Yacc와 같이 널리 쓰이는 어휘 분석기이다. Lex는 ..
2023.03.24 -
2022-08-30 유튜브_클론_5
참고 자료 : https://www.youtube.com/watch?v=67stn7Pu7s4 flex 각각의 flex의 item들이 컨테이너에서 차지하는 크기를 설정할 수 있다. 아래는 3개의 item들의 각기 다른 범위를 차치하는 상황이다. flex-grow flex-grow는 아이템이 flex-basis의 값보다 커질 수 있는지를 결정한다. 기본값은 0이다. 그래서 따로 값을 설정하기 전까지는 아이템이 늘어나지 않는다. 설정된 flex-grow의 값에 비례해서 여백 부분을 할당받는다. .upNext .item .img { flex-grow: 1; } .upNext .item .info { flex-grow: 1; } .upNext .item .moreBtn { flex-grow: 1; } 해당 예시에..
2022.09.01