[컴퓨터공학]C언어로 LEX구현

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2006.04.27 / 2019.12.24
  • 1페이지 / fileicon (기타파일)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 1,500원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
최대 20페이지까지 미리보기 서비스를 제공합니다.
자료평가하면 구매금액의 3%지급!
이전큰이미지 다음큰이미지
하고 싶은 말
C언어로 LEX구현하였습니다.
1.컴파일 방법
2.UNIX에서의 간단한 명령
3.vi 에디터에서의 간단한 명령
을 알아보고 LEX구현
본문내용
1.컴파일 방법

① lex 파일명 : lex.yy.c 가 생성됨
② cc lex.yy.c -o 생성될화일명 -ll : -o(생성될화일명을 지정할 수 있다)
: -ll(라이브러리 포함)
③ 생성된화일명 < 데이터화일명 : 데이터 파일은 직접 작성 해야 함


2.UNIX에서의 간단한 명령

① cp(카피명령) : cp 기존화일이름 복사될화일이름
: cp 기존화일이름 ../ssk/
② mv(파일이동) : mv ssk.l ggg.l(ssk.l 이 ggg.l 로 바뀐다.)
③ rm(삭제명령) : rm ssk.l(ssk.l을 삭제한다.)
④ pwd : 현재 디렉토리를 보여준다.
⑤ ls : 현재 디렉토리에 있는 파일들을 열거한다.
⑥ mkdir : mkdir ssk(ssk이라는 디렉토리를 생성한다.)
⑦ rmdir : rmdir ssk(ssk이라는 디렉토리를 삭제한다.)
⑧ cd .. : 한 단계 상위 디렉토리로 이동.
⑨ cd ssk : ssk 라는 디렉토리로 이동

3.vi 에디터에서의 간단한 명령
① ESC : 삽입이나 명령어 모드에서 탈출시 사용
② a : 커서 다음 위치에서 텍스트를 삽입
③ i : 커서 전 위치에 텍스트를 삽입,
④ h : 커서를 좌로 이동, j : 커서를 아래로 이동
k : 커서를 위로 이동, l : 커서를 우로 이동
⑤ x : 현커서위치의 문자 삭제
⑥ o : 커서가 있는 다음줄로 빈줄을 삽입, O : 커서가 있는 전줄로 빈줄을 삽입
⑦ dd : 현재 줄 삭제
⑧ esc키 → ":" → wq → enter키 : 저장하고 나감
⑨ esc키 → ":" → q → enter키 : 저장하지 않고 나감
⑩ esc키 → ":" → q! → enter키 : 수정된 내용을 무시하고 나감
⑪ vi 화일명 → enter키 → 편집 → ⑧과정 수행 (처음 vi 에디터에 들어가서 편집하고 저장하고 나오는 과정)
⑫ vi → enter키 → 편집 → esc키 → ":" → w 파일명 → enter키



----------ssk01.l------------------------------------------------------
%{
#include <stdio.h>
#include <stdlib.h>
enum tnumber { EOS, ID, INTEGER, REAL, NUMBER, ASSIGN, PLUS, MINUS,
MULTIPLY, IF, THEN, ELSE, WS, BLANK, LT,
SEMI, DOT, BEGN, END, ERROR};
%}
delim [\t\n]
ws {delim}+
letter [A-Za-z]
digit [0-9]
id {letter}({letter}|{digit})*
integer {digit}+
real {digit}+(\.{digit}+)?
number {digit}+(\.{digit}+)?(E[+\-]?{digit}+)?
%%
begin { return(BEGN); }
end { return(END); }
if { return(IF); }
then { return(THEN); }
else { return(ELSE); }
{id} { return(ID); }
{integer} { return(INTEGER); }
{real} { return(REAL); }
{number} { return(NUMBER); }
":=" { return(ASSIGN); }
"+" { return(PLUS); }
"-" { return(MINUS); }
"*" { return(MULTIPLY); }
";" { return(SEMI); }
"." { return(DOT); }
" " { return(BLANK); }
"<" { return(LT); }
. { return(ERROR); }
%%
main()
{
enum tnumber tn; /* token number */
int k;
float b;
printf("Start of Lex\n");
while((tn=yylex()) != EOS) {

자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • [컴퓨터공학]C언어로 구현한 원형 큐
  • FILE:queue.c#include#define MAX 5int menu();int input();int add(int);int del();int isfull();int isempty();void output();int rear = 0;int front= 0;int queueMAX;int main()int exit=1;int data;int addresult;int delresult;char ch;while(exit)switch(menu())case 1:data = input();addresult=add(data);if(addresult 0)printf(원형 큐의 데이터가 가득 찼음!!\n);elseprintf(정상적으로 데이터 삽입 완료!!\n);printf(엔터키를 눌러주세요!!\n);scanf(%c,&ch);getchar();break;case 2:delresult=del();if(delresult 0

  • [컴퓨터 공학]C언어로 구현한 퍼즐 게임
  • c,&ch);getchar(); switch(ch)case h:*row=*row-1;if(*row>=0 && *row=0 && *col=0 && *col=0 && *row

  • [사업계획서]스마트폰 어플리케이션 개발 및 공급 AppsLab 사업계획서
  • 컴퓨터 언어의 기본은 C언어이기 때문에 어플리케이션을 개발하려는 사람은 기본적으로 C언어와 C++언어를 다룰 줄 알아야 한다. 또, 클래스나 OOP(Object-Oriented Programming, 객체 지향 프로그래밍)에 대한 개념을 이해한 사람이어야 한다.3. 아이폰 어플리케이션 개발을 노릴 경우 맥 OS를 사용하여 프로그램을 개발한 경험이 있는 사람이 유리하다.마케팅STP웹 로또 어플리케이션을 만들어서 오프라인상의용지 대신에 온라인상의 용지에 자신만의 아이디와

  • [컴퓨터 공학]2원합병정렬 C언어로 구현
  • //********************************************************//** **//** 합병 정렬 후 이진탐색을 하는 프로그램 **//** **//********************************************************#include#define MAX 10void init(int a); // 초기화 함수void mergesort(int a, int min, int max); // 2개로 나누어 정렬void merge(int a, int min, int mid, int max); // 2개로 나누어진 정렬을 합병void mergeetc(int a, int min, int mid, int max);int binarysearch(int a, int min, int max, int key);void output(int a); // 출력함수//

  • [운영체제] 함수형 프로그래밍
  • 언어로 작성한 프로그램보다 간결하고, 더 추상적이며 이해하기 쉽다.2) 함수 프로그램은 형식적인 분석과 조작이 용이하다.3) 함수 프로그래밍 언어가 자연스럽게 병렬 컴퓨터에 구현 될 수 있다.3. 명령형 언어와 함수형 언어의 차이점1) 명령형 언어(Imperative language)(1) 명령형 언어의 종류① Fortran : FORTRAN은 최초의 고급 프로그래밍 언어로, 미국 IBM에서 J.Backus 등에 의해 개발된 것으로, 과학과 공학 등의 분야에서 널리 사용되고 있다.② Cobol : COBOL

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.