export type FileStack = { kind : 'file_stack' ; content : LatexLogElement [ ] ; } ; export function isFileStack ( e ) { return e . kind === 'file_stack' ; } export type TexError = { kind : 'tex_error' ; message : string ; line : number ; command ? : string ; } ; export function isTexError ( e ) { return e . kind === 'tex_error' ; } export type LatexmkError = { kind : 'latexmk_error' ; message : string ; path : string ; line : number ; command ? : string ; } ; export function isLatexmkError ( e ) { return e . kind === 'latexmk_error' ; } export type LogText = { kind : 'text_string' ; content : string ; } ; export function isLogText ( e ) { return e . kind === 'text_string' ; } export type PageNumber = { kind : 'page_number' ; page : number ; content ? : string ; } ; export function isPageNumber ( e ) { return e . kind === 'page_number' ; } export type LatexLogElement = FileStack | TexError | LatexmkError | LogText | PageNumber ; export type LatexLogAst = { kind : 'full' | 'halt_on_error' | 'unknown' ; content : ( LogText | FileStack ) [ ] ; } ;