commandline2.l

来自「语法分析 语法分析」· L 代码 · 共 54 行

L
54
字号
%{program CommandLine2.dpr;{$APPTYPE CONSOLE}//注意别忘了指定控制台模式uses  //CommandLex单元是改写后的LexLib,重定义了get_char, unget_char和put_char三个函数,以便  //使用命令行参数作为解析对象。  //本例子演示自定义状态的实现  SysUtils, Classes, CommandLex, Windows;var  FileName:integer;%}%s FNAME%%[ ]+         {* 忽略空格 *} ;<FNAME>[ ]+  {* 忽略空格 *} ;-h	|"-?"	|-help	begin          writeln(format('用法是: %s [-help | -h | -? ] [-verbose | -v] [(-file| -f) filename]', [GetCommandLine]));	  return(0);	end;-v	|-verbose writeln('打开Verbose模式');-f	|-file	begin           //注意在TP Lex Yacc中因为关键字的原因Begin宏变成了Start函数          Start(FNAME);	  FileName := 1;         end;<FNAME>[^ ]+ begin               Writeln(format('使用了文件%s', [yytext]));	       Start(0); 	       FileName := 2;	     end;[^ ]+  ECHO;%%begin  yylex;  if(FileName < 2) then    Writeln('没有指定文件名');  readln;end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?