사용자 정의 언어의 자동 들여쓰기 나열

사용자 정의 언어의 자동 들여쓰기 나열

목록을 사용하여 사용자 정의 언어가 정의되고 자동 들여쓰기가 정의됩니다. MWE는 들여쓰기를 수행하지 않습니다.

\documentclass{book}

\usepackage[formats]{listings}
\usepackage{xcolor}

% Define Language
\lstdefinelanguage{sofl}
{
    breaklines=true,
    tabsize=2,
    sensitive=false, % keywords are not case-sensitive
    morecomment=[l]{//}, % l is for line comment
    morecomment=[s]{/*}{*/}, % s is for start and end delimiter
    morestring=[b]", % defines that strings are enclosed in double quotes
    morekeywords={begin,end}
}
\lstdefineformat{sofl}%
{%
    \{=\newline\string\newline\indent,%
    \}=[;]\newline\noindent\string\newline,%
    \};=\newline\noindent\string\newline,%
    ;=[\ ]\string\space
}%
\lstnewenvironment{sofl} {
    \lstset{format=sofl}
    \lstset{language=sofl}
} {}

\begin{document}

\begin{sofl}
flow_b ->   
begin
if
flow_e = False;
f(data_b) ->
begin           
flow_d = True; 
data_d = data_b;
end
not f(data_b) ->
begin           
flow_d = True; 
data_d = data_b;
end
fo
end
\end{sofl}
\end{document}

이 조각을 사용하도록 예제를 업데이트하는 경우

\lstdefineformat{sofl}%
{%
    begin=\newline\string\newline\indent,%
    end=[;]\newline\noindent\string\newline,%
    end;=\newline\noindent\string\newline,%
    ;=[\ ]\string\space
}%

컴파일러는 오류를 제공합니다 Extra \fi. \begin{sofl}.

관련 정보