[DEV] add python parser and start work on the python makefile

This commit is contained in:
Edouard DUPIN 2013-04-17 21:40:05 +02:00
parent 91c1201f69
commit b8c819936e
7 changed files with 189 additions and 49 deletions

8
Makefile.py Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/python
import make
make.ImportPath(make.GetCurrentPath(__file__) + "/sources/")
make.ImportPath(make.GetCurrentPath(__file__) + "/../ewol/")
make.Dump()

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="c">
<ext>*.py</ext>
<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
<rule name="my comment multiline">
<color>comment</color>
<start>"""</start>
<end>"""</end>
</rule>
<rule name="my comment doxygen">
<color>commentDoxygen</color>
<start>##</start>
<end>\n</end>
</rule>
<rule name="my comment">
<color>comment</color>
<start>#</start>
<end>\n</end>
<EscapeChar>\</EscapeChar>
</rule>
<rule name="doubleQuteText">
<color>doubleQuoteText</color>
<start>"</start>
<end>"</end>
<EscapeChar>\</EscapeChar>
</rule>
<rule name="simpleQuteText">
<color>doubleQuoteText</color>
<start>'</start>
<end>'</end>
</rule>
</pass1>
<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
<rule name="my keyword">
<color>keyword</color>
<start>\@if|else|elif|break|pass|continue|while|do|for|in|return\@</start>
</rule>
<rule name="my function keyword">
<color>systemFunction</color>
<start>\@print|len|range|del|__init__|self\@</start>
</rule>
<rule name="my type">
<color>type</color>
<start>\@bool|BOOL|char|double|float\@</start>
</rule>
<rule name="my storage keyword">
<color>storageKeyword</color>
<start>\@def|class\@</start>
</rule>
<rule name="numeric constant">
<color>number</color>
<start>\@((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?\@</start>
</rule>
<rule name="my boolean">
<color>boolean</color>
<start>\@True|False\@</start>
</rule>
<rule name="BIG LETTER">
<color>macro</color>
<start>\@[A-Z_][A-Z_0-9]{3,500}\@</start>
</rule>
<rule name="Function name">
<color>functionName</color>
<start>\@(\w|_)+[ \t]*\(</start>
</rule>
<rule name="condition">
<color>boolean</color>
<start>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}|</start>
</rule>
<!-- With all elementes : -->
<rule name="BIG LETTER">
<color>macro</color>
<start>([A-Z]|_){4,500}</start>
<elemSubColor id="1">doxElem</elemSubColor>
</rule>
</pass2>
</EdnLang>

22
generateAllRelease.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/bash
#simply generate all ...
echo "==============================="
echo "== Linux =="
echo "==============================="
make CLANG=1 PLATFORM=Linux -j8
make CLANG=1 PLATFORM=Linux final
echo "==============================="
echo "== Android =="
echo "==============================="
make PLATFORM=Android -j8
make PLATFORM=Android final
echo "==============================="
echo "== Windows =="
echo "==============================="
make PLATFORM=Windows -j8
make PLATFORM=Windows final
echo "==============================="
echo "== MacOs =="
echo "==============================="
make CLANG=1 PLATFORM=MacOs -j8
make CLANG=1 PLATFORM=MacOs final

View File

@ -32,7 +32,7 @@ Highlight::Highlight(etk::UString &xmlFilename)
{
TiXmlDocument XmlDocument;
etk::FSNode fileName(etk::UString("DATA:") + xmlFilename);
etk::FSNode fileName(xmlFilename);
if (false == fileName.Exist()) {
APPL_ERROR("File Does not exist : " << fileName);
return;

View File

@ -83,54 +83,19 @@ class localClassHighlightManager: public ewol::EObject
void loadLanguages(void)
{
etk::UString xmlFilename = "languages/c/highlight.xml";
Highlight *myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/boo/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/makefile/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/asm/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/xml/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/php/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/bash/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/matlab/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/java/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/lua/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/in/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
xmlFilename = "languages/glsl/highlight.xml";
myHightline = new Highlight(xmlFilename);
listHighlight.PushBack(myHightline);
etk::FSNode myFile("DATA:languages/");
// get the subfolder list :
etk::Vector<etk::FSNode *> list = myFile.FolderGetSubList(false, true, false,false);
for ( int32_t iii=0 ; iii<list.Size() ; iii++ ) {
if (NULL!=list[iii]) {
if (list[iii]->GetNodeType()==etk::FSN_FOLDER) {
etk::UString filename = list[iii]->GetName() + "/highlight.xml";
APPL_DEBUG("Load xml name : " << filename);
Highlight *myHightline = new Highlight(filename);
listHighlight.PushBack(myHightline);
}
}
}
//myHightline->Display();
}

67
sources/edn_Linux.py Executable file
View File

@ -0,0 +1,67 @@
#!/usr/bin/python
import make
# prevent erro integration
#if 'myModule' in globals():
# del myModule
# module name is 'edn' and type binary.
myModule = make.module(__file__, 'edn', 'BINARY')
# add the file to compile:
myModule.AddSrcFile([
'appl/ctags/readtags.cpp',
'appl/ctags/CTagsManager.cpp'])
myModule.AddSrcFile([
'appl/Debug.cpp',
'appl/global.cpp',
'appl/globalMsg.cpp',
'appl/init.cpp'])
# Gui:
myModule.AddSrcFile([
'appl/Gui/BufferView.cpp',
'appl/Gui/CodeView.cpp',
'appl/Gui/MainWindows.cpp',
'appl/Gui/Search.cpp',
'appl/Gui/SearchData.cpp',
'appl/Gui/TagFileSelection.cpp',
'appl/Gui/TagFileList.cpp'])
# All needed for the buffer management :
myModule.AddSrcFile([
'appl/Buffer/EdnBuf/EdnBuf.cpp',
'appl/Buffer/EdnBuf/EdnBuf_HighLight.cpp',
'appl/Buffer/EdnBuf/EdnBuf_History.cpp',
'appl/Buffer/EdnBuf/EdnBuf_Selection.cpp',
'appl/Buffer/EdnBuf/EdnBufHistory.cpp',
'appl/Buffer/BufferText.cpp',
'appl/Buffer/BufferManager.cpp'])
# Generic color management for the text editor :
myModule.AddSrcFile([
'appl/Colorize/Colorize.cpp',
'appl/Colorize/ColorizeManager.cpp'])
# syntax coloration for the text editor
myModule.AddSrcFile([
'appl/Highlight/HighlightPattern.cpp',
'appl/Highlight/Highlight.cpp',
'appl/Highlight/HighlightManager.cpp'])
myModule.AddModuleDepend('ewol')
#myModule.CompileFlags_LINK()
#myModule.CompileFlags_CC()
#myModule.CompileFlags_XX()
#myModule.CompileFlags_M()
#myModule.CompileFlags_MM()
myModule.CompileFlags_CC([
'-DPROJECT_NAME="'+myModule.name+'"',
'-DAPPL_VERSION_TAG_NAME="4.25.26.23.25.88"'])
myModule.CopyFile('../data/icon.png','icon.png')
# add the currrent module at the
make.AddModule(myModule)

View File

@ -58,6 +58,7 @@ LOCAL_COPY_FOLDERS := ../data/icon.*: \
../data/languages/matlab/*.xml:languages/matlab/ \
../data/languages/php/*.xml:languages/php/ \
../data/languages/xml/*.xml:languages/xml/ \
../data/languages/python/*.xml:languages/python/ \
../data/theme/default/*.svg:theme/default/
LOCAL_COPY_FILES :=