Minsky
anonymous_namespace{latexMarkup.cc} Namespace Reference

Classes

struct  Result
 
struct  Symbol
 

Functions

map< string, string > populateSymbols (Symbol symbs[], size_t nSyms)
 
string parseLaTeXSym (const char *&input)
 
string utf8char (const char *&input)
 

Variables

struct anonymous_namespace{latexMarkup.cc}::Symbol symbolData []
 
map< string, string > latexSymbols
 

Function Documentation

◆ parseLaTeXSym()

string anonymous_namespace{latexMarkup.cc}::parseLaTeXSym ( const char *&  input)

Definition at line 668 of file latexMarkup.cc.

Referenced by anonymous_namespace{latexMarkup.cc}::Result::processLaTeX().

669  {
670  string r;
671  // treat some accented characters as a single symbol (brace form not accepted)
672  if (strchr("`'^\"~=.",*input) && *(input+1)!='{')
673  {
674  r.assign(input,2);
675  input+=2;
676  return r;
677  }
678 
679  // lettered accents with braces
680  if (strchr("`'^\"~=.uvHtcdb",*input) && *(input+1)=='{')
681  {
682  const char* end=strchr(input, '}');
683  if (end!=NULL)
684  {
685  r.assign(input,end-input+1);
686  input=end+1;
687  }
688  return r;
689  }
690 
691  // symbols that stand for themselves
692  if (strchr("#$%&_{}",*input))
693  return string(input++,1);
694 
695  // normal LaTeX token processing
696  while (*input!='\0' && isalpha(*input))
697  r+=*input++;
698  // if the next character is a whitespace, swallow the character;
699  if (isspace(*input)) input++;
700  return r;
701  }
Definition: input.py:1
Here is the caller graph for this function:

◆ populateSymbols()

map<string,string> anonymous_namespace{latexMarkup.cc}::populateSymbols ( Symbol  symbs[],
size_t  nSyms 
)

Definition at line 654 of file latexMarkup.cc.

655  {
656  map<string,string> r;
657  for (Symbol* s=symbs; s<symbs+nSyms; ++s)
658  r[s->first]=s->second;
659  return r;
660  }

◆ utf8char()

string anonymous_namespace{latexMarkup.cc}::utf8char ( const char *&  input)

Definition at line 705 of file latexMarkup.cc.

References minsky::defang().

Referenced by minsky::latexToPangoNonItalicised(), and anonymous_namespace{latexMarkup.cc}::Result::push().

706  {
707  string r;
708  const char lead=*input;
709  if ((lead&0xC0)==0xC0) r+=*input++; // multibyte byte sequence
710  if ((lead&0xE0)==0xE0) r+=*input++; // 3 or more
711  if ((lead&0xF8)==0xF0) r+=*input++; // 4 bytes
712  if ((lead&0xC0)!=0xC0) // defang any single byte chars
713  r+=minsky::defang(*input++);
714  else
715  r+=*input++;
716  return r;
717  }
string defang(char c)
Definition: latexMarkup.cc:842
Definition: input.py:1
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ latexSymbols

map<string,string> anonymous_namespace{latexMarkup.cc}::latexSymbols
Initial value:
(symbolData, sizeof(symbolData)/sizeof(symbolData[0]))
struct anonymous_namespace{latexMarkup.cc}::Symbol symbolData[]
map< string, string > populateSymbols(Symbol symbs[], size_t nSyms)
Definition: latexMarkup.cc:654

Definition at line 662 of file latexMarkup.cc.

Referenced by anonymous_namespace{latexMarkup.cc}::Result::processLaTeX().

◆ symbolData

struct anonymous_namespace{latexMarkup.cc}::Symbol anonymous_namespace{latexMarkup.cc}::symbolData[]