netlist.l.bak

来自「circuit calculation program」· BAK 代码 · 共 65 行

BAK
65
字号
%{
#include "circuit.h"
#include "y.tab.h"

extern YYSTYPE yyval, yylval;

#define read_to_eol() do {char c;while ((c = input()) && !strchr("\r\n\f",c) ); }while(0)

%}

%option lex-compat
%x id1 id2 value unit post_unit

%%
\[		{BEGIN(id1);return COMPONENT_START;}

<post_unit>\]	{BEGIN(0);return COMPONENT_END;}

<*>[\n\r\f]	;

<*>[ \t]*	;



<id1>[^\[\]\(\)\n][^\n\r]*	{
		BEGIN(id2);
		strcpy (yylval.svalue.s,yytext); 
		printf ("0-%s\n",yytext);
		return IDENTIFIER;
	}

<id2>[^\[\]\(\)\n][^\n\r]*	{
		BEGIN(value);
		strcpy (yylval.svalue.s,yytext); 
		printf ("1-%s\n",yytext);
		return IDENTIFIER;
	}

<value>[^\[\]\(\)\n][^\n\r]*	{
		BEGIN(post_unit);
		strcpy (yylval.svalue.s,yytext); 
		printf ("2-%s\n",yytext);
		return IDENTIFIER;
	}

<value>[0-9]*.[0-9]*[ ]*{pF|uF|F|H|mH|K}	{
		BEGIN(post_unit);
		strcpy (yylval.svalue.s,yytext); 
		printf ("3-%s\n",yytext);
		return IDENTIFIER;		
	}
	
	
\(	{return NODE_START;}

\)	{return NODE_END;}




%%

int yywrap () {return 1;}

⌨️ 快捷键说明

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