From 83e9a469038f3fddc8666e7bc64f7ace3c25bfd6 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Mon, 9 Jun 2014 14:29:44 +0400 Subject: [PATCH 01/24] cgrep alias is added. --- bash/bashrc.synopsys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bash/bashrc.synopsys b/bash/bashrc.synopsys index ee9bf7e..1453bb3 100755 --- a/bash/bashrc.synopsys +++ b/bash/bashrc.synopsys @@ -232,7 +232,7 @@ alias fwtags="find . -type d -exec /depot/ctag-5.5.4/bin/ctags -R --verbose --include \*.h --include \*.c --include \*.cpp --exclude=\"boost\" --exclude=\"hp64*\" --exclude=\"sparc64*\" --exclude=\"linux*\" --exclude=\"aix64*\" --exclude=\"suse32*\" --exclude=\"suse64*\" --exclude=\"win32\" --exclude=\"*stage*\" --exclude=\"*no_sync*\" -f \{\}/tags \{\} \;" alias cleantemp="rm -rf ~/temp/*icwb*" alias vncserver="/usr/bin/vncserver" -alias mygrep="grep -R --include *.cpp --include *.h" +alias cgrep="grep --include \*.cpp --include \*.h --include \*.c" alias localParse="/remote/nti/test_suite/icwb/common/utilities/localParse.pl" # From 782450c744cc57be0b326c01c08f16ced37c5821 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Tue, 10 Jun 2014 01:24:30 +0400 Subject: [PATCH 02/24] python is added to cf5. --- vim/cf5-compiler.vim | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/vim/cf5-compiler.vim b/vim/cf5-compiler.vim index 5fb47f4..0bc5f64 100755 --- a/vim/cf5-compiler.vim +++ b/vim/cf5-compiler.vim @@ -58,6 +58,24 @@ function! s:CompileJava(run) "{{{2 echo eout endfunction +function! s:InterpretPython(run) "{{{2 + " Interpret it + let cmd = "python " . g:pyflags . " " . expand("%") + echo cmd + let cout = system( cmd ) + echo cout + if v:shell_error + return + endif + " run it + "let classpath=expand("%:p:r") + "let exename=expand("%:r") + "let cmd = "java " . exename . " " . g:argv + "echo cmd + "let eout = system( cmd ) + "echo eout +endfunction + function! s:CompileWindows(run) "{{{2 let ext=expand("%:e") if ext=="java" @@ -66,6 +84,12 @@ function! s:CompileWindows(run) "{{{2 if ext=="cpp" call s:CompileMSVC(a:run) endif + if ext=="c" + call s:CompileMSVC(a:run) + endif + if ext=="py" + call s:InterpretPython(a:run) + endif endfunction " @@ -93,7 +117,19 @@ function! s:CompileGCC(run) "{{{2 endfunction function! s:CompileLinux(run) "{{{2 - call s:CompileGCC(a:run) + let ext=expand("%:e") + if ext=="java" + call s:CompileJava(a:run) + endif + if ext=="cpp" + call s:CompileGCC(a:run) + endif + if ext=="c" + call s:CompileGCC(a:run) + endif + if ext=="py" + call s:InterpretPython(a:run) + endif endfunction " @@ -154,6 +190,7 @@ endfunction function! s:initDefaults() let g:cf5output=0 let g:argv="" + let g:pyflags="" let g:cppflags="" let g:wcppflags="/O2 /EHsc /DWIN32" let g:lcppflags="-O2" From 562f7227124203199dd0055fc4a55ab4a5837f22 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Thu, 14 Aug 2014 16:23:44 +0400 Subject: [PATCH 03/24] LD_LIBRARY_PATH is set separately to allow csh run the prog too. --- vim/cf5-compiler.vim | 3 ++- vim/{ => colors}/vahagn_black_terminal.vim | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename vim/{ => colors}/vahagn_black_terminal.vim (100%) diff --git a/vim/cf5-compiler.vim b/vim/cf5-compiler.vim index 0bc5f64..1e35626 100755 --- a/vim/cf5-compiler.vim +++ b/vim/cf5-compiler.vim @@ -109,7 +109,8 @@ function! s:CompileGCC(run) "{{{2 call s:appendOutput(cout) " run it if a:run == 1 - let cmdline="LD_LIBRARY_PATH=".g:ldlibpath.":".$LD_LIBRARY_PATH." ".exename." ".g:argv + let $LD_LIBRARY_PATH="LD_LIBRARY_PATH=".g:ldlibpath.":".$LD_LIBRARY_PATH + let cmdline=exename." ".g:argv call s:appendOutput(cmdline) let eout = system( cmdline ) call s:appendOutput(eout) diff --git a/vim/vahagn_black_terminal.vim b/vim/colors/vahagn_black_terminal.vim similarity index 100% rename from vim/vahagn_black_terminal.vim rename to vim/colors/vahagn_black_terminal.vim From dfdc690f77b0f279cc5614a42717b07113ffa2a1 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Tue, 9 Sep 2014 14:52:46 +0400 Subject: [PATCH 04/24] Calibre's *.svrf files are highlighted now. --- vim/syntax/calibre.vim | 569 +++++++++++++++++++++++++++++++++++++++++ vim/vimrc | 3 + 2 files changed, 572 insertions(+) create mode 100644 vim/syntax/calibre.vim diff --git a/vim/syntax/calibre.vim b/vim/syntax/calibre.vim new file mode 100644 index 0000000..8379108 --- /dev/null +++ b/vim/syntax/calibre.vim @@ -0,0 +1,569 @@ +" Vim syntax file +" Language: Calibre +" Maintainer: Mentor Graphics Corp. +" Last change: August 5, 2010 +" Extensions: *.drc,*.lvs,*.rul,*.rules +" Comment: This file includes SVRF/TVF Technology under license by Mentor Graphics Corporation. "SVRF/TVF Technology" shall mean Mentor Graphics' Standard Verification Rule Format ("SVRF") and Tcl Verification Format ("TVF ") proprietary syntaxes for expressing process rules. You shall not use SVRF/TVF Technology unless you are a Mentor Graphics customer as defined by having authorized access to Mentor Graphics' password protected support site at http://supportnet.mentor.com/. The exact terms of your obligations and rights are governed by your respective license. You shall not use SVRF/TVF Technology except: (a) for your internal business purposes and (b) for use with Mentor Graphics' Calibre(r) tools. All SVRF/TVF Technology constitutes or contains trade secrets and confidential information of Mentor Graphics or its licensors. You shall not make SVRF/TVF Technology available in any form to any person other than your employees and on-site contractors, excluding Mentor Graphics competitors, whose job performance requires access and who are under obligations of confidentiality. + +"Version: 0.9 copied the command dictionary from SVRF manual version 2010.2 +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Ignore case +syn case ignore + +" A bunch of useful Calibre keywords + +"Updated with keyword list from 2010.2 +syn keyword calibreKeyword and angle area attach connect copy cut dbclassify deangle density device disconnect donut enclose enclosure extent extents external flatten group grow hcell holes include inside interact internal layer length magnify mdpmerge mdpstat mdpverify merge net not offgrid opcbias opclineend opcsbar or ornet outside pathchk perimeter pins polygon ports precision push rectangle rectangles resolution rotate sconnect shift shrink size snap stamp tddrc text title topex touch variable vertex xor trapezoider vboasis_injection speed_mode computation_mode fracture_units vboasis_path log_file_name file_name svrf_layer_name version chip_directory input_region_severity cell_subfield_size cell_subfield_margin cell_max_width cell_max_height frame_width frame_max_data common_max_data conversion_address_unit max_skew_approximation_error svrf_layer_name shot_size cell_size_x cell_size_y field_size lsb1 format_type small_value + +syn match calibreDirective "\#define " + +syn match calibreKeyword "capacitance[\ \t][\ \t]*order[\ \t][\ \t]*" +syn match calibreKeyword "coincident[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "coincident[\ \t][\ \t]*inside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "coincident[\ \t][\ \t]*outside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "convex[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "density[\ \t][\ \t]*convolve[\ \t][\ \t]*" +syn match calibreKeyword "device[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*analyze[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*connectivity[\ \t][\ \t]*redundant[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*copy[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*create[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*critical[\ \t][\ \t]*area[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*database[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*defaults[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*expand[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*expand[\ \t][\ \t]*enclosure[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*fill[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*function[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*grow[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*histogram[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*measure[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*narac[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*property[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*property[\ \t][\ \t]*merge[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*rdb[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*read[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*redundant[\ \t][\ \t]*vias[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*select[\ \t][\ \t]*check[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*shift[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*size[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*space[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*spec[\ \t][\ \t]*fill[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*spec[\ \t][\ \t]*fill[\ \t][\ \t]*optimizer[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*spec[\ \t][\ \t]*fill[\ \t][\ \t]*shape[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*spec[\ \t][\ \t]*spatial[\ \t][\ \t]*sample[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*spec[\ \t][\ \t]*via[\ \t][\ \t]*redundancy[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*stamp[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*transform[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*transition[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*unselect[\ \t][\ \t]*check[\ \t][\ \t]*" +syn match calibreKeyword "dfm[\ \t][\ \t]*ys[\ \t][\ \t]*autostart[\ \t][\ \t]*" +syn match calibreKeyword "drawn[\ \t][\ \t]*acute[\ \t][\ \t]*" +syn match calibreKeyword "drawn[\ \t][\ \t]*angled[\ \t][\ \t]*" +syn match calibreKeyword "drawn[\ \t][\ \t]*offgrid[\ \t][\ \t]*" +syn match calibreKeyword "drawn[\ \t][\ \t]*skew[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*cell[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*cell[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*check[\ \t][\ \t]*map[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*check[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*exclude[\ \t][\ \t]*false[\ \t][\ \t]*notch[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*icstation[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*incremental[\ \t][\ \t]*connect[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*incremental[\ \t][\ \t]*connect[\ \t][\ \t]*warning[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*keep[\ \t][\ \t]*empty[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*magnify[\ \t][\ \t]*density[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*magnify[\ \t][\ \t]*nar[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*magnify[\ \t][\ \t]*results[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*map[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*map[\ \t][\ \t]*text[\ \t][\ \t]*depth[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*map[\ \t][\ \t]*text[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*maximum[\ \t][\ \t]*cell[\ \t][\ \t]*name[\ \t][\ \t]*length[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*maximum[\ \t][\ \t]*results[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*maximum[\ \t][\ \t]*unattached[\ \t][\ \t]*label[\ \t][\ \t]*warnings[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*maximum[\ \t][\ \t]*vertex[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*print[\ \t][\ \t]*area[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*print[\ \t][\ \t]*perimeter[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*results[\ \t][\ \t]*database[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*results[\ \t][\ \t]*database[\ \t][\ \t]*libname[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*results[\ \t][\ \t]*database[\ \t][\ \t]*precision[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*select[\ \t][\ \t]*check[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*select[\ \t][\ \t]*check[\ \t][\ \t]*by[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*summary[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*tolerance[\ \t][\ \t]*factor[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*tolerance[\ \t][\ \t]*factor[\ \t][\ \t]*nar[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*unselect[\ \t][\ \t]*check[\ \t][\ \t]*" +syn match calibreKeyword "drc[\ \t][\ \t]*unselect[\ \t][\ \t]*check[\ \t][\ \t]*by[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "enclose[\ \t][\ \t]*rectangle[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*cell[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*check[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*keep[\ \t][\ \t]*empty[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*maximum[\ \t][\ \t]*results[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*maximum[\ \t][\ \t]*vertex[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*path[\ \t][\ \t]*also[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*pathchk[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*results[\ \t][\ \t]*database[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*select[\ \t][\ \t]*check[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*summary[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "erc[\ \t][\ \t]*unselect[\ \t][\ \t]*check[\ \t][\ \t]*" +syn match calibreKeyword "exclude[\ \t][\ \t]*acute[\ \t][\ \t]*" +syn match calibreKeyword "exclude[\ \t][\ \t]*angled[\ \t][\ \t]*" +syn match calibreKeyword "exclude[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "exclude[\ \t][\ \t]*offgrid[\ \t][\ \t]*" +syn match calibreKeyword "exclude[\ \t][\ \t]*skew[\ \t][\ \t]*" +syn match calibreKeyword "expand[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "expand[\ \t][\ \t]*cell[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "expand[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "expand[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "extent[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "extent[\ \t][\ \t]*drawn[\ \t][\ \t]*" +syn match calibreKeyword "flag[\ \t][\ \t]*acute[\ \t][\ \t]*" +syn match calibreKeyword "flag[\ \t][\ \t]*angled[\ \t][\ \t]*" +syn match calibreKeyword "flag[\ \t][\ \t]*nonsimple[\ \t][\ \t]*" +syn match calibreKeyword "flag[\ \t][\ \t]*nonsimple[\ \t][\ \t]*path[\ \t][\ \t]*" +syn match calibreKeyword "flag[\ \t][\ \t]*offgrid[\ \t][\ \t]*" +syn match calibreKeyword "flag[\ \t][\ \t]*skew[\ \t][\ \t]*" +syn match calibreKeyword "flatten[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "flatten[\ \t][\ \t]*inside[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*hitachi[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*jeol[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*mebes[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*micronic[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*nuflare[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*vboasis[\ \t][\ \t]*" +syn match calibreKeyword "fracture[\ \t][\ \t]*oasis_mask[\ \t][\ \t]*" +syn match calibreKeyword "inductance[\ \t][\ \t]*micheck[\ \t][\ \t]*" +syn match calibreKeyword "inductance[\ \t][\ \t]*wire[\ \t][\ \t]*" +syn match calibreKeyword "inside[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "inside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "label[\ \t][\ \t]*order[\ \t][\ \t]*" +syn match calibreKeyword "layer[\ \t][\ \t]*directory[\ \t][\ \t]*" +syn match calibreKeyword "layer[\ \t][\ \t]*map[\ \t][\ \t]*" +syn match calibreKeyword "layer[\ \t][\ \t]*resolution[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*allow[\ \t][\ \t]*duplicate[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*base[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*base[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*bump2[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*case[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*cell[\ \t][\ \t]*list[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*cell[\ \t][\ \t]*match[\ \t][\ \t]*rule[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*depth[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*error[\ \t][\ \t]*on[\ \t][\ \t]*input[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*ignore[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*input[\ \t][\ \t]*exception[\ \t][\ \t]*rdb[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*input[\ \t][\ \t]*exception[\ \t][\ \t]*severity[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*magnify[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*merge[\ \t][\ \t]*on[\ \t][\ \t]*input[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*path[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*path2[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*place[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*polygon[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*precision[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*preserve[\ \t][\ \t]*case[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*preserve[\ \t][\ \t]*cell[\ \t][\ \t]*list[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*primary[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*primary2[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*process[\ \t][\ \t]*box[\ \t][\ \t]*record[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*process[\ \t][\ \t]*node[\ \t][\ \t]*record[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*property[\ \t][\ \t]*audit[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*property[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*rename[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*rename[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*system[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*system2[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*top[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*use[\ \t][\ \t]*database[\ \t][\ \t]*precision[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*windel[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*windel[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*windel[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*window[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*window[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*window[\ \t][\ \t]*clip[\ \t][\ \t]*" +syn match calibreKeyword "layout[\ \t][\ \t]*window[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*denseopc[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*opc[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*opcverify[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*orc[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*printimage[\ \t][\ \t]*" +syn match calibreKeyword "litho[\ \t][\ \t]*psmgate[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*abort[\ \t][\ \t]*on[\ \t][\ \t]*erc[\ \t][\ \t]*error[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*abort[\ \t][\ \t]*on[\ \t][\ \t]*softchk[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*abort[\ \t][\ \t]*on[\ \t][\ \t]*supply[\ \t][\ \t]*error[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*all[\ \t][\ \t]*capacitor[\ \t][\ \t]*pins[\ \t][\ \t]*swappable[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*auto[\ \t][\ \t]*expand[\ \t][\ \t]*hcells[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*box[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*builtin[\ \t][\ \t]*device[\ \t][\ \t]*pin[\ \t][\ \t]*swap[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*builtin[\ \t][\ \t]*mos[\ \t][\ \t]*nrd_nrs[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*cell[\ \t][\ \t]*list[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*cell[\ \t][\ \t]*supply[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*center[\ \t][\ \t]*device[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*check[\ \t][\ \t]*port[\ \t][\ \t]*names[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*compare[\ \t][\ \t]*case[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*component[\ \t][\ \t]*subtype[\ \t][\ \t]*property[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*component[\ \t][\ \t]*type[\ \t][\ \t]*property[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*cpoint[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*device[\ \t][\ \t]*type[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*discard[\ \t][\ \t]*pins[\ \t][\ \t]*by[\ \t][\ \t]*device[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*downcase[\ \t][\ \t]*device[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*eddm[\ \t][\ \t]*process[\ \t][\ \t]*m[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*exact[\ \t][\ \t]*subtypes[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*exclude[\ \t][\ \t]*hcell[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*execute[\ \t][\ \t]*erc[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*expand[\ \t][\ \t]*seed[\ \t][\ \t]*promotions[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*expand[\ \t][\ \t]*unbalanced[\ \t][\ \t]*cells[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*unused[\ \t][\ \t]*bipolar[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*unused[\ \t][\ \t]*capacitors[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*unused[\ \t][\ \t]*diodes[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*unused[\ \t][\ \t]*mos[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*unused[\ \t][\ \t]*option[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*filter[\ \t][\ \t]*unused[\ \t][\ \t]*resistors[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*global[\ \t][\ \t]*layout[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*globals[\ \t][\ \t]*are[\ \t][\ \t]*ports[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*ground[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*heap[\ \t][\ \t]*directory[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*ignore[\ \t][\ \t]*ports[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*ignore[\ \t][\ \t]*trivial[\ \t][\ \t]*named[\ \t][\ \t]*ports[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*inject[\ \t][\ \t]*logic[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*isolate[\ \t][\ \t]*shorts[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*map[\ \t][\ \t]*device[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*netlist[\ \t][\ \t]*all[\ \t][\ \t]*texted[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*netlist[\ \t][\ \t]*allow[\ \t][\ \t]*inconsistent[\ \t][\ \t]*model[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*netlist[\ \t][\ \t]*box[\ \t][\ \t]*contents[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*netlist[\ \t][\ \t]*comment[\ \t][\ \t]*coded[\ \t][\ \t]*properties[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*netlist[\ \t][\ \t]*comment[\ \t][\ \t]*coded[\ \t][\ \t]*substrate[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*netlist[\ \t][\ \t]*unnamed[\ \t][\ \t]*box[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*nl[\ \t][\ \t]*pin[\ \t][\ \t]*locations[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*non[\ \t][\ \t]*user[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*out[\ \t][\ \t]*of[\ \t][\ \t]*range[\ \t][\ \t]*exclude[\ \t][\ \t]*zero[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*pin[\ \t][\ \t]*name[\ \t][\ \t]*property[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*power[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*precise[\ \t][\ \t]*interaction[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*preserve[\ \t][\ \t]*box[\ \t][\ \t]*cells[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*preserve[\ \t][\ \t]*box[\ \t][\ \t]*ports[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*preserve[\ \t][\ \t]*floating[\ \t][\ \t]*top[\ \t][\ \t]*nets[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*preserve[\ \t][\ \t]*parameterized[\ \t][\ \t]*cells[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*property[\ \t][\ \t]*initialize[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*property[\ \t][\ \t]*map[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*property[\ \t][\ \t]*resolution[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*push[\ \t][\ \t]*devices[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*recognize[\ \t][\ \t]*gates[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*recognize[\ \t][\ \t]*gates[\ \t][\ \t]*tolerance[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*parallel[\ \t][\ \t]*bipolar[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*parallel[\ \t][\ \t]*capacitors[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*parallel[\ \t][\ \t]*diodes[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*parallel[\ \t][\ \t]*mos[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*parallel[\ \t][\ \t]*resistors[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*semi[\ \t][\ \t]*series[\ \t][\ \t]*mos[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*series[\ \t][\ \t]*capacitors[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*series[\ \t][\ \t]*mos[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*series[\ \t][\ \t]*resistors[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduce[\ \t][\ \t]*split[\ \t][\ \t]*gates[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reduction[\ \t][\ \t]*priority[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*report[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*report[\ \t][\ \t]*option[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*report[\ \t][\ \t]*units[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*report[\ \t][\ \t]*warnings[\ \t][\ \t]*hcell[\ \t][\ \t]*only[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*report[\ \t][\ \t]*warnings[\ \t][\ \t]*top[\ \t][\ \t]*only[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*reverse[\ \t][\ \t]*wl[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*short[\ \t][\ \t]*equivalent[\ \t][\ \t]*nodes[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*show[\ \t][\ \t]*seed[\ \t][\ \t]*promotions[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*show[\ \t][\ \t]*seed[\ \t][\ \t]*promotions[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*signature[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*soft[\ \t][\ \t]*substrate[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*softchk[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*allow[\ \t][\ \t]*duplicate[\ \t][\ \t]*subcircuit[\ \t][\ \t]*names[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*allow[\ \t][\ \t]*floating[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*allow[\ \t][\ \t]*inline[\ \t][\ \t]*parameters[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*allow[\ \t][\ \t]*unquoted[\ \t][\ \t]*strings[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*conditional[\ \t][\ \t]*ldd[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*cull[\ \t][\ \t]*primitive[\ \t][\ \t]*subcircuits[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*implied[\ \t][\ \t]*mos[\ \t][\ \t]*area[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*multiplier[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*option[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*override[\ \t][\ \t]*globals[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*prefer[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*redefine[\ \t][\ \t]*param[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*rename[\ \t][\ \t]*parameter[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*replicate[\ \t][\ \t]*devices[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*scale[\ \t][\ \t]*x[\ \t][\ \t]*parameters[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*slash[\ \t][\ \t]*is[\ \t][\ \t]*space[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*spice[\ \t][\ \t]*strict[\ \t][\ \t]*wl[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*split[\ \t][\ \t]*gate[\ \t][\ \t]*ratio[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*strict[\ \t][\ \t]*subtypes[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*summary[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*write[\ \t][\ \t]*injected[\ \t][\ \t]*layout[\ \t][\ \t]*netlist[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*write[\ \t][\ \t]*injected[\ \t][\ \t]*source[\ \t][\ \t]*netlist[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*write[\ \t][\ \t]*layout[\ \t][\ \t]*netlist[\ \t][\ \t]*" +syn match calibreKeyword "lvs[\ \t][\ \t]*write[\ \t][\ \t]*source[\ \t][\ \t]*netlist[\ \t][\ \t]*" +syn match calibreKeyword "mask[\ \t][\ \t]*results[\ \t][\ \t]*database[\ \t][\ \t]*" +syn match calibreKeyword "mask[\ \t][\ \t]*svdb[\ \t][\ \t]*directory[\ \t][\ \t]*" +syn match calibreKeyword "mdp[\ \t][\ \t]*checkmap[\ \t][\ \t]*" +syn match calibreKeyword "mdp[\ \t][\ \t]*embed[\ \t][\ \t]*" +syn match calibreKeyword "mdp[\ \t][\ \t]*mapsize[\ \t][\ \t]*" +syn match calibreKeyword "mdp[\ \t][\ \t]*maskopt[\ \t][\ \t]*" +syn match calibreKeyword "mdp[\ \t][\ \t]*oasis_extent[\ \t][\ \t]*" +syn match calibreKeyword "net[\ \t][\ \t]*area[\ \t][\ \t]*" +syn match calibreKeyword "net[\ \t][\ \t]*area[\ \t][\ \t]*ratio[\ \t][\ \t]*" +syn match calibreKeyword "net[\ \t][\ \t]*area[\ \t][\ \t]*ratio[\ \t][\ \t]*accumulate[\ \t][\ \t]*" +syn match calibreKeyword "net[\ \t][\ \t]*area[\ \t][\ \t]*ratio[\ \t][\ \t]*print[\ \t][\ \t]*" +syn match calibreKeyword "net[\ \t][\ \t]*interact[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*angle[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*area[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*coincident[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*coincident[\ \t][\ \t]*inside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*coincident[\ \t][\ \t]*outside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*cut[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*donut[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*enclose[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*enclose[\ \t][\ \t]*rectangle[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*inside[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*inside[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*inside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*interact[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*length[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*net[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*outside[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*outside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*rectangle[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*touch[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*touch[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*touch[\ \t][\ \t]*inside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*touch[\ \t][\ \t]*outside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*with[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*with[\ \t][\ \t]*neighbor[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*with[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "not[\ \t][\ \t]*with[\ \t][\ \t]*width[\ \t][\ \t]*" +syn match calibreKeyword "or[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "outside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "parasitic[\ \t][\ \t]*variation[\ \t][\ \t]*" +syn match calibreKeyword "path[\ \t][\ \t]*length[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*load[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*netlist[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*property[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*report[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*report[\ \t][\ \t]*option[\ \t][\ \t]*" +syn match calibreKeyword "perc[\ \t][\ \t]*report[\ \t][\ \t]*placement[\ \t][\ \t]*list[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*alias[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*ba[\ \t][\ \t]*mapfile[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*bulk[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*cmp[\ \t][\ \t]*mode[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*contact[\ \t][\ \t]*capacitance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*corner[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*corner[\ \t][\ \t]*custom[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*def[\ \t][\ \t]*extract[\ \t][\ \t]*cell[\ \t][\ \t]*obstructions[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*density[\ \t][\ \t]*estimate[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*density[\ \t][\ \t]*window[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*driver[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*elayer[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*exclude[\ \t][\ \t]*distributed[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*exclude[\ \t][\ \t]*lumped[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*extract[\ \t][\ \t]*exclude[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*extract[\ \t][\ \t]*floating[\ \t][\ \t]*nets[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*extract[\ \t][\ \t]*include[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*extract[\ \t][\ \t]*rgate[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*extract[\ \t][\ \t]*temperature[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*fieldsolver[\ \t][\ \t]*endcap[\ \t][\ \t]*spacing[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*fieldsolver[\ \t][\ \t]*mode[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*fill[\ \t][\ \t]*handling[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*fill[\ \t][\ \t]*model[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*fracture[\ \t][\ \t]*frequency[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*generate[\ \t][\ \t]*driver[\ \t][\ \t]*file[\ \t][\ \t]*tag[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*generate[\ \t][\ \t]*driver_file[\ \t][\ \t]*tag[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*ground[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*ground[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*ideal[\ \t][\ \t]*xcell[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*ignore[\ \t][\ \t]*capacitance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*ignore[\ \t][\ \t]*resistance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*include[\ \t][\ \t]*distributed[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*include[\ \t][\ \t]*lumped[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*indie[\ \t][\ \t]*spacing[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*default[\ \t][\ \t]*partial[\ \t][\ \t]*model[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*default[\ \t][\ \t]*pi[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*differential[\ \t][\ \t]*pair[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*doprocess[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*driver[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*extract[\ \t][\ \t]*layers[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*filter[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*forward[\ \t][\ \t]*coupling[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*frequency[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*...[\ \t][\ \t]*frequency[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*micheck[\ \t][\ \t]*constraint[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*minlength[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*parameters[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*range[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*returnpath[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*same[\ \t][\ \t]*net[\ \t][\ \t]*mutual[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*self[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*skin[\ \t][\ \t]*include[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*switch[\ \t][\ \t]*time[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*switch_time[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*...[\ \t][\ \t]*switch[\ \t][\ \t]*time[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*...[\ \t][\ \t]*switch_time[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*victim[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*victim[\ \t][\ \t]*path[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*victim_path[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*victim[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*inductance[\ \t][\ \t]*victim_file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*magnify[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*adms[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*character[\ \t][\ \t]*map[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*connection[\ \t][\ \t]*section[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*create[\ \t][\ \t]*smashed[\ \t][\ \t]*device[\ \t][\ \t]*names[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*device[\ \t][\ \t]*resistance[\ \t][\ \t]*model[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*distributed[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*escape[\ \t][\ \t]*characters[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*global[\ \t][\ \t]*nets[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*lumped[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*mutual[\ \t][\ \t]*resistance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*noxref[\ \t][\ \t]*net[\ \t][\ \t]*names[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*position[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*replicated_device[\ \t][\ \t]*delimiter[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*schematiconly[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*select[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*simple[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*smashed_device[\ \t][\ \t]*delimiter[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*subnode[\ \t][\ \t]*section[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*unshort[\ \t][\ \t]*device[\ \t][\ \t]*pins[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*uppercase[\ \t][\ \t]*keywords[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*netlist[\ \t][\ \t]*virtual[\ \t][\ \t]*connect[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*pin[\ \t][\ \t]*order[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*power[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*probe[\ \t][\ \t]*file[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*analog[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*cc[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*digital[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*distributed[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*mincap[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*minres[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*ronly[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*ticer[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*reduce[\ \t][\ \t]*via[\ \t][\ \t]*resistance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*coupling[\ \t][\ \t]*capacitance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*distributed[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*lumped[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*mutual[\ \t][\ \t]*inductance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*netsummary[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*report[\ \t][\ \t]*point2point[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*resistance[\ \t][\ \t]*parameters[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*sensitivity[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*skin[\ \t][\ \t]*include[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*slots[\ \t][\ \t]*handling[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*temperature[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*thickness[\ \t][\ \t]*eqn[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*thickness[\ \t][\ \t]*nominal[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*threshold[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*tolerance[\ \t][\ \t]*distributed[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*via[\ \t][\ \t]*capacitance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*via[\ \t][\ \t]*reduction[\ \t][\ \t]*resistance[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*xcell[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*xcell[\ \t][\ \t]*extract[\ \t][\ \t]*mode[\ \t][\ \t]*" +syn match calibreKeyword "pex[\ \t][\ \t]*xcell[\ \t][\ \t]*precedence[\ \t][\ \t]*" +syn match calibreKeyword "port[\ \t][\ \t]*depth[\ \t][\ \t]*" +syn match calibreKeyword "port[\ \t][\ \t]*layer[\ \t][\ \t]*polygon[\ \t][\ \t]*" +syn match calibreKeyword "port[\ \t][\ \t]*layer[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "push[\ \t][\ \t]*cell[\ \t][\ \t]*" +syn match calibreKeyword "rectangle[\ \t][\ \t]*enclosure[\ \t][\ \t]*" +syn match calibreKeyword "resistance[\ \t][\ \t]*connection[\ \t][\ \t]*" +syn match calibreKeyword "resistance[\ \t][\ \t]*device_seed[\ \t][\ \t]*" +syn match calibreKeyword "resistance[\ \t][\ \t]*rho[\ \t][\ \t]*" +syn match calibreKeyword "resistance[\ \t][\ \t]*sheet[\ \t][\ \t]*" +syn match calibreKeyword "snap[\ \t][\ \t]*offgrid[\ \t][\ \t]*" +syn match calibreKeyword "source[\ \t][\ \t]*case[\ \t][\ \t]*" +syn match calibreKeyword "source[\ \t][\ \t]*path[\ \t][\ \t]*" +syn match calibreKeyword "source[\ \t][\ \t]*primary[\ \t][\ \t]*" +syn match calibreKeyword "source[\ \t][\ \t]*system[\ \t][\ \t]*" +syn match calibreKeyword "svrf[\ \t][\ \t]*error[\ \t][\ \t]*" +syn match calibreKeyword "svrf[\ \t][\ \t]*message[\ \t][\ \t]*" +syn match calibreKeyword "svrf[\ \t][\ \t]*version[\ \t][\ \t]*" +syn match calibreKeyword "text[\ \t][\ \t]*depth[\ \t][\ \t]*" +syn match calibreKeyword "text[\ \t][\ \t]*layer[\ \t][\ \t]*" +syn match calibreKeyword "text[\ \t][\ \t]*print[\ \t][\ \t]*maximum[\ \t][\ \t]*" +syn match calibreKeyword "touch[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "touch[\ \t][\ \t]*inside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "touch[\ \t][\ \t]*outside[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "trace[\ \t][\ \t]*property[\ \t][\ \t]*" +syn match calibreKeyword "unit[\ \t][\ \t]*capacitance[\ \t][\ \t]*" +syn match calibreKeyword "unit[\ \t][\ \t]*inductance[\ \t][\ \t]*" +syn match calibreKeyword "unit[\ \t][\ \t]*length[\ \t][\ \t]*" +syn match calibreKeyword "unit[\ \t][\ \t]*resistance[\ \t][\ \t]*" +syn match calibreKeyword "unit[\ \t][\ \t]*time[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*box[\ \t][\ \t]*colon[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*box[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*colon[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*depth[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*name[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*report[\ \t][\ \t]*" +syn match calibreKeyword "virtual[\ \t][\ \t]*connect[\ \t][\ \t]*semicolon[\ \t][\ \t]*as[\ \t][\ \t]*colon[\ \t][\ \t]*" +syn match calibreKeyword "with[\ \t][\ \t]*edge[\ \t][\ \t]*" +syn match calibreKeyword "with[\ \t][\ \t]*neighbor[\ \t][\ \t]*" +syn match calibreKeyword "with[\ \t][\ \t]*text[\ \t][\ \t]*" +syn match calibreKeyword "with[\ \t][\ \t]*width[\ \t][\ \t]*" + +syn match calibreComment "//.*" +syn match calibreSpecialComment "@.*" +syn region calibreBlockComment start="/\*" end="\*/" + +syn match calibreRuleName "[^//].*{"he=e-1 +"Match Stings +"syn match calibreString /"[^"]*"/hs=s+1,he=e-1 +syn match calibreString /"[^"]*"/ +" Numbers, all with engineering suffixes and optional units +"========================================================== +"floating point number, with dot, optional exponent +syn match calibreNumber "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" +"floating point number, starting with a dot, optional exponent +syn match calibreNumber "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" +"integer number with optional exponent +syn match calibreNumber "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" + +"syn match calibrePreProc "^#.*" +syn match calibrePreProc "#.*" + +"Modify the following as needed. The trade-off is performance versus +"functionality. +syn sync lines=50 + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_calibre_syn_inits") + if version < 508 + let did_calibre_syn_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink calibreIdentifier Identifier + HiLink calibreStatement Statement + HiLink calibreKeyword Statement + HiLink calibreComment Comment + HiLink calibreBlockComment Comment + HiLink calibreSpecialComment SpecialComment + HiLink calibrePreProc PreProc + HiLink calibreString String + HiLink calibreNumber Number + HiLink calibreRuleName Structure + HiLink calibreDirective Question + + delcommand HiLink +endif + +let b:current_syntax = "calibre" + +" vim: ts=8 diff --git a/vim/vimrc b/vim/vimrc index 04c1d2c..3eab46a 100755 --- a/vim/vimrc +++ b/vim/vimrc @@ -38,6 +38,9 @@ endif if &t_Co > 2 || has("gui_running") syntax on set hlsearch + " + " This will turn on svrf highlighting + au BufRead,BufNewFile *.svrf set filetype=calibre endif " One such option is the 'hidden' option, which allows you to re-use the same From c68806ab2eee627f728f3de4a3bfddceef72581e Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Tue, 9 Sep 2014 15:22:57 +0400 Subject: [PATCH 05/24] MG: cshell scripts to sync sites. --- mg/cshrc | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++ mg/sync_home | 7 ++++ 2 files changed, 113 insertions(+) create mode 100644 mg/cshrc create mode 100755 mg/sync_home diff --git a/mg/cshrc b/mg/cshrc new file mode 100644 index 0000000..42405bf --- /dev/null +++ b/mg/cshrc @@ -0,0 +1,106 @@ +# +# Private settings +# +setenv PATH $HOME/local_rh_x64/bin:$HOME/bin:$HOME/devel/scripts/mg:$HOME/devel/scripts/bash:$PATH + +set lpath=$HOME/local_rh_x64/lib:$HOME/local_rh_x64/lib64 +if ($?LD_LIBRARY_PATH) then + setenv LD_LIBRARY_PATH $lpath\:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH $lpath +endif + +# +# MG global +# +setenv MGC_SITE `domainname` +switch($MGC_SITE:q) + case amy.mentorg.com: + source /user/icdet/bin/detalias.arm.csh + setenv MGLS_LICENSE_FILE 1717@amy-lic-01.amy.mentorg.com + #setenv WG_SERVER /share/ic_wg_server/CACHED_WG_SERVER + #setenv MGC_SERVER $WG_SERVER + breaksw + case wv.mentorg.com: + source /user/icdet/bin/detalias.csh + setenv MGLS_LICENSE_FILE 1717@wv-lic-01:1717@wv-lic-02:1717@wv-lic-03:1717@wv-lic-04:1717@wv-lic-05:1700@pevlic1:1700@pevlic4 + breaksw + case sje.mentorg.com: + source /user/icdet/bin/detalias.csh + setenv MGLS_LICENSE_FILE 1717@wv-lic-01:1717@wv-lic-02:1717@wv-lic-03:1717@wv-lic-04:1717@wv-lic-05:1700@pevlic1:1700@pevlic4 + breaksw +endsw + +setenv LM_LICENSE_FILE $MGLS_LICENSE_FILE\:1717@wv-lic-toolworks.wv.mentorg.com + +# +# MG development environment +# +setenv CVSROOT :pserver:calcvs:/cvs/ic +setenv BUILD64 1 +setenv VCO `/usr/mgc/bin/mgcvco` + +setenv PATH $PATH\:/user/icdet/bin:/user/icbuild/bin:/user/pevtools/bin +setenv PATH $PATH\:/usr/mgc/bin:/usr/mgc/lib/mgcms + +set cpu_count=`/user/icdet/bin/count_processors` +setenv PB "GMAKE_LIB_PARALLEL=-j$cpu_count GMAKE_SYSTESTS_PARALLEL=-j$cpu_count" +setenv PB2 "GMAKE_EXEC_PARALLEL=-j"`/user/icdet/bin/figure_gmake_exec_ness` +alias pmake 'gmake $PB $PB2' + +# +# VTune +# +if ( -x /opt/intel/vtune_amplifier_xe/amplxe-vars.sh ) then + source /opt/intel/vtune_amplifier_xe/amplxe-vars.sh + setenv LM_LICENSE_FILE $LM_LICENSE_FILE\:1717@rukbat.wv.mentorg.com +endif + +if ( -x /opt/intel/inspector_xe_2011/inspxe-vars.sh ) then + source /opt/intel/inspector_xe_2011/inspxe-vars.sh +endif + +# +# ICWBEV +# +alias icwbev $HOME/local_rh_x64/private/fw/bin/icwbev +alias oasis_info $HOME/local_rh_x64/private/fw/bin/oasis_info + +# +# Aliases +# + +############# +# if test -n "$DISPLAY"; then +# if echo "$DISPLAY"|grep -q "localhost"; then +# unset DISPLAY +# fi +# fi +# +# if test -z "$DISPLAY"; then +# if test -n "$SSH_CLIENT"; then +# REMOTEIP=`expr "$SSH_CLIENT" : '.*\([0-9]\{3\}\.[0-9]\{3\}\.[0-9]*\.[0-9]\{1,3\}\)'` +# export DISPLAY=$REMOTEIP:0.0 +# elif test -n "$REMOTEHOST";then +# export DISPLAY=$REMOTEHOST:0.0 +# fi +# fi + +##################### + +# export MGC_HOME=/amy/cal_nightly/latest/ic/ic_superproj/aoi/Mgc_home +# export MGC_BIN=$MGC_HOME/bin +# export PATH=$MGC_BIN:$PATH + + #echo "PATH = $PATH" + +# export MGC_AMS_HOME=/tools/ELDO +# export PATH=$PATH:$MGC_AMS_HOME/bin +##################### + +# export STRESS_HOME=/home/hhovsepy/Research/mgcstress +# export SPICESIM=/home/hhovsepy/Research/tsmc45spice +# export PATH=$SPICESIM:$STRESS_HOME:$PATH +#for review-board +# export PATH=/tools/ActivePython-2.5.4.4.x86_64/bin/:$PATH + diff --git a/mg/sync_home b/mg/sync_home new file mode 100755 index 0000000..0b50e4e --- /dev/null +++ b/mg/sync_home @@ -0,0 +1,7 @@ +#!/bin/csh + +cd +rsync -avz amy-dev5:local_rh_x64 local_rh_x64 +rsync -avz amy-dev5:bin bin +rsync -avz amy-dev5:.vim .vim + From ed0878ab752b5e755045cd8b222d43a4980447cd Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 10 Sep 2014 10:34:09 +0400 Subject: [PATCH 06/24] MG: environment for terra is added. --- mg/cshrc | 59 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/mg/cshrc b/mg/cshrc index 42405bf..be3cb20 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -1,19 +1,9 @@ -# -# Private settings -# -setenv PATH $HOME/local_rh_x64/bin:$HOME/bin:$HOME/devel/scripts/mg:$HOME/devel/scripts/bash:$PATH - -set lpath=$HOME/local_rh_x64/lib:$HOME/local_rh_x64/lib64 -if ($?LD_LIBRARY_PATH) then - setenv LD_LIBRARY_PATH $lpath\:$LD_LIBRARY_PATH -else - setenv LD_LIBRARY_PATH $lpath -endif - # # MG global # +setenv VCO `/usr/mgc/bin/mgcvco` setenv MGC_SITE `domainname` + switch($MGC_SITE:q) case amy.mentorg.com: source /user/icdet/bin/detalias.arm.csh @@ -33,21 +23,40 @@ endsw setenv LM_LICENSE_FILE $MGLS_LICENSE_FILE\:1717@wv-lic-toolworks.wv.mentorg.com +setenv PATH $PATH\:/user/icdet/bin:/user/icbuild/bin +setenv PATH $PATH\:/user/pevtools/bin:/user/pevtools/$VCO/bin +setenv PATH $PATH\:/usr/mgc/bin:/usr/mgc/lib/mgcms + +setenv LD_LIBRARY_PATH /user/pevtools/$VCO/lib\:$LD_LIBRARY_PATH +setenv PEVTOOLSBIN /user/pevtools/bin + # # MG development environment # setenv CVSROOT :pserver:calcvs:/cvs/ic setenv BUILD64 1 -setenv VCO `/usr/mgc/bin/mgcvco` - -setenv PATH $PATH\:/user/icdet/bin:/user/icbuild/bin:/user/pevtools/bin -setenv PATH $PATH\:/usr/mgc/bin:/usr/mgc/lib/mgcms set cpu_count=`/user/icdet/bin/count_processors` setenv PB "GMAKE_LIB_PARALLEL=-j$cpu_count GMAKE_SYSTESTS_PARALLEL=-j$cpu_count" setenv PB2 "GMAKE_EXEC_PARALLEL=-j"`/user/icdet/bin/figure_gmake_exec_ness` alias pmake 'gmake $PB $PB2' +# +# MG test environment (These are needed for terra) +# +setenv DESIGN_DIR /user/pevtools/data_dir +setenv DFM_TEST_BASE /wv/cal_dfm_qa/tot_master/calibre/dfm/rq/ + +#export MGC_HOME=/amy/cal_nightly/latest/ic/ic_superproj/$VCO/Mgc_home +#export MGC_HOME=/wv/icdet/work_areas/latest_ube/ic/ic_superproj/$VCO/Mgc_home/ +#export MGC_BIN=$MGC_HOME/bin +#export PATH=$MGC_BIN:$PATH + +setenv TEST_SUITE_TOP=/wv/amy_dfm_qa/tot_master/calibre +setenv CALIBRE_SKIP_OS_CHECKS=1 +source /wv/calgrid/sge/default/common/settings.csh +setenv SGE_ROOT /wv/calgrid/uge811 + # # VTune # @@ -60,6 +69,12 @@ if ( -x /opt/intel/inspector_xe_2011/inspxe-vars.sh ) then source /opt/intel/inspector_xe_2011/inspxe-vars.sh endif +# +# Private settings +# +setenv PATH $HOME/local_rh_x64/bin:$HOME/bin:$HOME/devel/scripts/mg:$HOME/devel/scripts/bash:$PATH +setenv LD_LIBRARY_PATH $HOME/local_rh_x64/lib:$HOME/local_rh_x64/lib64\:$LD_LIBRARY_PATH + # # ICWBEV # @@ -85,22 +100,10 @@ alias oasis_info $HOME/local_rh_x64/private/fw/bin/oasis_info # export DISPLAY=$REMOTEHOST:0.0 # fi # fi - ##################### - -# export MGC_HOME=/amy/cal_nightly/latest/ic/ic_superproj/aoi/Mgc_home -# export MGC_BIN=$MGC_HOME/bin -# export PATH=$MGC_BIN:$PATH - - #echo "PATH = $PATH" - # export MGC_AMS_HOME=/tools/ELDO # export PATH=$PATH:$MGC_AMS_HOME/bin ##################### - -# export STRESS_HOME=/home/hhovsepy/Research/mgcstress -# export SPICESIM=/home/hhovsepy/Research/tsmc45spice -# export PATH=$SPICESIM:$STRESS_HOME:$PATH #for review-board # export PATH=/tools/ActivePython-2.5.4.4.x86_64/bin/:$PATH From 27e538aaf5ce3c78f4edd0d163d94ea565d1e6aa Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 10 Sep 2014 11:21:28 +0400 Subject: [PATCH 07/24] MG: cshrc fixed. --- mg/cshrc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/mg/cshrc b/mg/cshrc index be3cb20..0e38f27 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -27,7 +27,7 @@ setenv PATH $PATH\:/user/icdet/bin:/user/icbuild/bin setenv PATH $PATH\:/user/pevtools/bin:/user/pevtools/$VCO/bin setenv PATH $PATH\:/usr/mgc/bin:/usr/mgc/lib/mgcms -setenv LD_LIBRARY_PATH /user/pevtools/$VCO/lib\:$LD_LIBRARY_PATH +setenv LD_LIBRARY_PATH /user/pevtools/$VCO/lib setenv PEVTOOLSBIN /user/pevtools/bin # @@ -44,18 +44,19 @@ alias pmake 'gmake $PB $PB2' # # MG test environment (These are needed for terra) # -setenv DESIGN_DIR /user/pevtools/data_dir -setenv DFM_TEST_BASE /wv/cal_dfm_qa/tot_master/calibre/dfm/rq/ - #export MGC_HOME=/amy/cal_nightly/latest/ic/ic_superproj/$VCO/Mgc_home #export MGC_HOME=/wv/icdet/work_areas/latest_ube/ic/ic_superproj/$VCO/Mgc_home/ #export MGC_BIN=$MGC_HOME/bin #export PATH=$MGC_BIN:$PATH -setenv TEST_SUITE_TOP=/wv/amy_dfm_qa/tot_master/calibre -setenv CALIBRE_SKIP_OS_CHECKS=1 -source /wv/calgrid/sge/default/common/settings.csh -setenv SGE_ROOT /wv/calgrid/uge811 +if ( -x /wv/calgrid/sge/default/common/settings.csh ) then + setenv DESIGN_DIR /user/pevtools/data_dir + setenv DFM_TEST_BASE /wv/cal_dfm_qa/tot_master/calibre/dfm/rq/ + setenv TEST_SUITE_TOP /wv/amy_dfm_qa/tot_master/calibre + setenv CALIBRE_SKIP_OS_CHECKS 1 + source /wv/calgrid/sge/default/common/settings.csh + setenv SGE_ROOT /wv/calgrid/uge811 +endif # # VTune From 6ba3ec2300cac07d244adda854848028c67dc663 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 10 Sep 2014 00:55:25 -0700 Subject: [PATCH 08/24] MG: vtune scripts is fixed. --- mg/cshrc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mg/cshrc b/mg/cshrc index 0e38f27..0128751 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -61,13 +61,14 @@ endif # # VTune # -if ( -x /opt/intel/vtune_amplifier_xe/amplxe-vars.sh ) then - source /opt/intel/vtune_amplifier_xe/amplxe-vars.sh +if ( -x /opt/intel/vtune_amplifier_xe/amplxe-vars.csh ) then + source /opt/intel/vtune_amplifier_xe/amplxe-vars.csh setenv LM_LICENSE_FILE $LM_LICENSE_FILE\:1717@rukbat.wv.mentorg.com + alias vtune amplxe-gui endif -if ( -x /opt/intel/inspector_xe_2011/inspxe-vars.sh ) then - source /opt/intel/inspector_xe_2011/inspxe-vars.sh +if ( -x /opt/intel/inspector_xe_2011/inspxe-vars.csh ) then + source /opt/intel/inspector_xe_2011/inspxe-vars.csh endif # From 3677a7cf32a9d9112f4b6319e55be4db6c51f85f Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 10 Sep 2014 19:04:52 +0400 Subject: [PATCH 09/24] MG: post-review and prepare_for_checkin added to path. Amplifier config script is silenced in order to let git to work correctly. --- mg/cshrc | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/mg/cshrc b/mg/cshrc index 0128751..95544d4 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -49,7 +49,7 @@ alias pmake 'gmake $PB $PB2' #export MGC_BIN=$MGC_HOME/bin #export PATH=$MGC_BIN:$PATH -if ( -x /wv/calgrid/sge/default/common/settings.csh ) then +if ( -e /wv/calgrid/sge/default/common/settings.csh ) then setenv DESIGN_DIR /user/pevtools/data_dir setenv DFM_TEST_BASE /wv/cal_dfm_qa/tot_master/calibre/dfm/rq/ setenv TEST_SUITE_TOP /wv/amy_dfm_qa/tot_master/calibre @@ -59,16 +59,33 @@ if ( -x /wv/calgrid/sge/default/common/settings.csh ) then endif # -# VTune +# post-review +# +if ( -e /tools/ActivePython-2.5.6.10-linux-x86/bin/post-review ) then + setenv PATH $PATH\:/tools/ActivePython-2.5.6.10-linux-x86/bin +endif +if ( -e /wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin/post-review ) then + setenv PATH $PATH:/wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin +endif + +# +# Eugene's check-in script +# +if ( -x /home/anikin/bin/prepare_for_checkin ) then + alias prepare_for_checkin /home/anikin/bin/prepare_for_checkin +endif + +# +# VTune and inspector # if ( -x /opt/intel/vtune_amplifier_xe/amplxe-vars.csh ) then - source /opt/intel/vtune_amplifier_xe/amplxe-vars.csh + source /opt/intel/vtune_amplifier_xe/amplxe-vars.csh > /dev/null setenv LM_LICENSE_FILE $LM_LICENSE_FILE\:1717@rukbat.wv.mentorg.com alias vtune amplxe-gui endif if ( -x /opt/intel/inspector_xe_2011/inspxe-vars.csh ) then - source /opt/intel/inspector_xe_2011/inspxe-vars.csh + source /opt/intel/inspector_xe_2011/inspxe-vars.csh > /dev/null endif # @@ -87,25 +104,4 @@ alias oasis_info $HOME/local_rh_x64/private/fw/bin/oasis_info # Aliases # -############# -# if test -n "$DISPLAY"; then -# if echo "$DISPLAY"|grep -q "localhost"; then -# unset DISPLAY -# fi -# fi -# -# if test -z "$DISPLAY"; then -# if test -n "$SSH_CLIENT"; then -# REMOTEIP=`expr "$SSH_CLIENT" : '.*\([0-9]\{3\}\.[0-9]\{3\}\.[0-9]*\.[0-9]\{1,3\}\)'` -# export DISPLAY=$REMOTEIP:0.0 -# elif test -n "$REMOTEHOST";then -# export DISPLAY=$REMOTEHOST:0.0 -# fi -# fi -##################### -# export MGC_AMS_HOME=/tools/ELDO -# export PATH=$PATH:$MGC_AMS_HOME/bin -##################### -#for review-board -# export PATH=/tools/ActivePython-2.5.4.4.x86_64/bin/:$PATH From d79975cc31a41a2c351c51d18bf044715fc1de0c Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 10 Sep 2014 19:08:12 +0400 Subject: [PATCH 10/24] MG: fix. --- mg/cshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mg/cshrc b/mg/cshrc index 95544d4..3669a25 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -65,7 +65,7 @@ if ( -e /tools/ActivePython-2.5.6.10-linux-x86/bin/post-review ) then setenv PATH $PATH\:/tools/ActivePython-2.5.6.10-linux-x86/bin endif if ( -e /wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin/post-review ) then - setenv PATH $PATH:/wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin + setenv PATH $PATH\:/wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin endif # From 65d58fb2999a8a0690940055013fe96895c662e5 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 10 Sep 2014 23:00:25 -0700 Subject: [PATCH 11/24] MG: sync_home cleaned. --- mg/sync_home | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mg/sync_home b/mg/sync_home index 0b50e4e..6e80a03 100755 --- a/mg/sync_home +++ b/mg/sync_home @@ -1,7 +1,11 @@ #!/bin/csh cd -rsync -avz amy-dev5:local_rh_x64 local_rh_x64 -rsync -avz amy-dev5:bin bin -rsync -avz amy-dev5:.vim .vim + +echo sync: bin +rsync -avz amy-dev5:bin $HOME +echo sync: .vim +rsync -avz amy-dev5:.vim $HOME +echo sync: local_rh_x64 +rsync -avz amy-dev5:local_rh_x64 $HOME From a36ee37730a9fb33c080f8e09ec768b0116d3d63 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Thu, 11 Sep 2014 10:28:22 +0400 Subject: [PATCH 12/24] MG: IWA defined. --- mg/cshrc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mg/cshrc b/mg/cshrc index 3669a25..f3b32f3 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -41,6 +41,14 @@ setenv PB "GMAKE_LIB_PARALLEL=-j$cpu_count GMAKE_SYSTESTS_PARALLEL=-j$cpu_count" setenv PB2 "GMAKE_EXEC_PARALLEL=-j"`/user/icdet/bin/figure_gmake_exec_ness` alias pmake 'gmake $PB $PB2' +if ( -x /share/cal_nightly/latest ) then + setenv IWA /share/cal_nightly/latest +else if ( -x /wv/cal_nightly/latest_ube ) then + setenv IWA /wv/cal_nightly/latest_ube +else if ( -x /sj/cal_nightly/latest_ube ) then + setenv IWA /sj/cal_nightly/latest_ube +endif + # # MG test environment (These are needed for terra) # @@ -63,8 +71,7 @@ endif # if ( -e /tools/ActivePython-2.5.6.10-linux-x86/bin/post-review ) then setenv PATH $PATH\:/tools/ActivePython-2.5.6.10-linux-x86/bin -endif -if ( -e /wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin/post-review ) then +else if ( -e /wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin/post-review ) then setenv PATH $PATH\:/wv/pevtools/ActivePython-2.5.4.4-linux-x86_64/bin endif From db5121f1ee4730bd8fc5ac330326d200d1529a48 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 12 Sep 2014 16:21:19 +0400 Subject: [PATCH 13/24] MG: replace tabs with spaces. --- vim/vimrc | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/vimrc b/vim/vimrc index 3eab46a..51e5af0 100755 --- a/vim/vimrc +++ b/vim/vimrc @@ -15,6 +15,7 @@ set viminfo='20,\"50 " read/write a .viminfo file, don't store more set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set tabstop=4 " make tabes to be equal to 4 space chars. +set expandtab " this is for MG files. set shiftwidth=4 " for shifting by 4 when pressing tab. set fileformat=unix " line ending is unix set textwidth=80 " 80 char text From 9cb7343491c1f332d8c281dad4f25e73e93067dc Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 12 Sep 2014 16:22:55 +0400 Subject: [PATCH 14/24] MG: create_dwa and setmgchome added. --- mg/create_dwa.csh | 43 +++++++++++++++++++++++++++++++++++++++++++ mg/cshrc | 5 +++-- mg/setmgchome.csh | 15 +++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 mg/create_dwa.csh create mode 100644 mg/setmgchome.csh diff --git a/mg/create_dwa.csh b/mg/create_dwa.csh new file mode 100644 index 0000000..16d4e9c --- /dev/null +++ b/mg/create_dwa.csh @@ -0,0 +1,43 @@ +#!/bin/csh + +mkdir -p $1 +cd $1 +setenv DWA `pwd` + +setenv VVCO $VCO-dbg + +ic_dwa -lv $IWA $DWA $VVCO + +###################### +cd $DWA/ic/ic_superproj/$VVCO +cglu +pmake mk_imports imports + +cd $DWA/ic/lv/$VVCO +cglu +cm_add_verfiles + +#cd $DWA/ic/lv/$VCO-dbg/lithas/Dsrc +#cvs update build.pl + +cd $DWA/ic/lv/$VCO-dbg + +setenv CAL_DWA $DWA +setenv CAL_IWA $IWA + +pmake lcl_exec ic_create_deps + +# +# Set path after build. Otherwise tcsh doesn't find binaries. +# +setenv MGC_HOME $DWA/ic/ic_superproj/$VVCO/Mgc_home +setenv MGC_BIN $MGC_HOME/bin +setenv PATH $MGC_BIN\:$PATH + +#cd +#$DWA/ic/lv/$VCO/lithas/Isrc/build.pl debug calibre -j 8 + +#cd $WA/ic/lv/$VCO +#cglu +#gmake $PB systests lv_verify -j8 +#gmake $PB systests lv_verify diff --git a/mg/cshrc b/mg/cshrc index f3b32f3..b25361e 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -40,6 +40,7 @@ set cpu_count=`/user/icdet/bin/count_processors` setenv PB "GMAKE_LIB_PARALLEL=-j$cpu_count GMAKE_SYSTESTS_PARALLEL=-j$cpu_count" setenv PB2 "GMAKE_EXEC_PARALLEL=-j"`/user/icdet/bin/figure_gmake_exec_ness` alias pmake 'gmake $PB $PB2' +alias create_dwa 'source $HOME/devel/scripts/mg/create_dwa.csh' if ( -x /share/cal_nightly/latest ) then setenv IWA /share/cal_nightly/latest @@ -110,5 +111,5 @@ alias oasis_info $HOME/local_rh_x64/private/fw/bin/oasis_info # # Aliases # - - +alias cdw 'cd $HOME/devel/mg' +alias setmgchome 'source $HOME/devel/scripts/mg/setmgchome.csh' diff --git a/mg/setmgchome.csh b/mg/setmgchome.csh new file mode 100644 index 0000000..3ca60aa --- /dev/null +++ b/mg/setmgchome.csh @@ -0,0 +1,15 @@ +#!/bin/csh + +if ( $1 != '' ) then + set DIR=`readlink -f $1` +else + set DIR=`pwd` +endif + +setenv DWA $DIR +setenv VVCO $VCO-dbg + +setenv MGC_HOME $DWA/ic/ic_superproj/$VVCO/Mgc_home +setenv MGC_BIN $MGC_HOME/bin +setenv PATH $MGC_BIN\:$PATH + From cfd47defb6bae523fe335156991f40ff6680f985 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 17 Sep 2014 11:51:01 +0400 Subject: [PATCH 15/24] *.swo is added to ignore list. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1377554..3819313 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.swp +*.swo From ca1eb2d697bddcb8fe76f8b465af860d5343c228 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Wed, 17 Sep 2014 01:11:45 -0700 Subject: [PATCH 16/24] MG: create_iwa.csh + fix in create_dwa.csh --- mg/create_dwa.csh | 13 +++++++++++-- mg/create_iwa.csh | 48 +++++++++++++++++++++++++++++++++++++++++++++++ mg/cshrc | 1 + mg/setmgchome.csh | 2 +- 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 mg/create_iwa.csh diff --git a/mg/create_dwa.csh b/mg/create_dwa.csh index 16d4e9c..281e612 100644 --- a/mg/create_dwa.csh +++ b/mg/create_dwa.csh @@ -1,10 +1,19 @@ #!/bin/csh +if ( $1 == '' ) then + echo 'DWA folder is not specified.' + exit +endif + mkdir -p $1 cd $1 setenv DWA `pwd` -setenv VVCO $VCO-dbg +if ( $2 != '' ) then + set VVCO=$VCO-$2 +else + set VVCO=$VCO +endif ic_dwa -lv $IWA $DWA $VVCO @@ -20,7 +29,7 @@ cm_add_verfiles #cd $DWA/ic/lv/$VCO-dbg/lithas/Dsrc #cvs update build.pl -cd $DWA/ic/lv/$VCO-dbg +cd $DWA/ic/lv/$VVCO setenv CAL_DWA $DWA setenv CAL_IWA $IWA diff --git a/mg/create_iwa.csh b/mg/create_iwa.csh new file mode 100644 index 0000000..2a102d8 --- /dev/null +++ b/mg/create_iwa.csh @@ -0,0 +1,48 @@ +#!/bin/csh + +if ( $1 == '' ) then + echo 'IWA folder is not specified.' + exit +endif + +mkdir -p $1 +cd $1 +setenv IWA `pwd` + +if ( $2 != '' ) then + set VVCO=$VCO-$2 +else + set VVCO=$VCO +endif + +# +# Check out sources. +# +echo cvs checkout -r calibre_2014_3 ic/lv/src ic/ic_superproj/src + +###################### +cd $IWA/ic/lv +mkwa . . $VVCO + +cd $IWA/ic/ic_superproj +mkwa . . $VVCO +cd $IWA/ic/ic_superproj/$VVCO +cglu +gmake mk_imports imports + +cd $IWA/ic/lv/$VVCO +cglu +cm_add_verfiles + +setenv CAL_DWA $DWA +setenv CAL_IWA $IWA + +#pmake lcl_exec ic_create_deps + +# +# Set path after build. Otherwise tcsh doesn't find binaries. +# +setenv MGC_HOME $IWA/ic/ic_superproj/$VVCO/Mgc_home +setenv MGC_BIN $MGC_HOME/bin +setenv PATH $MGC_BIN\:$PATH + diff --git a/mg/cshrc b/mg/cshrc index b25361e..915007f 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -41,6 +41,7 @@ setenv PB "GMAKE_LIB_PARALLEL=-j$cpu_count GMAKE_SYSTESTS_PARALLEL=-j$cpu_count" setenv PB2 "GMAKE_EXEC_PARALLEL=-j"`/user/icdet/bin/figure_gmake_exec_ness` alias pmake 'gmake $PB $PB2' alias create_dwa 'source $HOME/devel/scripts/mg/create_dwa.csh' +alias create_iwa 'source $HOME/devel/scripts/mg/create_iwa.csh' if ( -x /share/cal_nightly/latest ) then setenv IWA /share/cal_nightly/latest diff --git a/mg/setmgchome.csh b/mg/setmgchome.csh index 3ca60aa..e8b00e8 100644 --- a/mg/setmgchome.csh +++ b/mg/setmgchome.csh @@ -7,7 +7,7 @@ else endif setenv DWA $DIR -setenv VVCO $VCO-dbg +setenv VVCO $VCO setenv MGC_HOME $DWA/ic/ic_superproj/$VVCO/Mgc_home setenv MGC_BIN $MGC_HOME/bin From f84e0cf5c205878501013bf8368f4f41b1cc85f3 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 10 Oct 2014 09:11:18 +0400 Subject: [PATCH 17/24] VIM: tabs are replaced with spaces. --- vim/vimrc | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/vim/vimrc b/vim/vimrc index 51e5af0..9da6dec 100755 --- a/vim/vimrc +++ b/vim/vimrc @@ -15,8 +15,10 @@ set viminfo='20,\"50 " read/write a .viminfo file, don't store more set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set tabstop=4 " make tabes to be equal to 4 space chars. +set shiftwidth=4 " for indentation shift by 4 chars. set expandtab " this is for MG files. -set shiftwidth=4 " for shifting by 4 when pressing tab. +set softtabstop=4 " insert/ deletes 4 space chars. +set smarttab " insert/ space in front of line instead of tab. set fileformat=unix " line ending is unix set textwidth=80 " 80 char text let g:netrw_preview = 1 " netrw open window to the right @@ -56,8 +58,8 @@ if exists('&hidden') set hidden endif -" Instead of failing a command because of unsaved changes, instead raise a -" dialogue asking if you wish to save changed files. +" Instead of failing a command because of unsaved changes, raise a dialogue +" asking if you wish to save changed files. if exists('&confirm') set confirm endif @@ -87,9 +89,8 @@ if exists('&modeline') set modeline set modelines=10 endif -" + " Set fold method if supported -" if has('folding') set nofoldenable set foldmethod=indent "fold based on indent @@ -102,9 +103,18 @@ if has('folding') autocmd FileType cpp setlocal foldmethod=syntax endif endif -" + +" Unset expandtab for make files in any case. +if has('autocmd') + autocmd FileType make setlocal noexpandtab +endif + +" Set expandtab for python files in any case. +if has('autocmd') + autocmd FileType python setlocal expandtab +endif + " P4 -" command! -nargs=* PFedit :!p4 edit % command! -nargs=* PFrevert :!p4 revert % command! -nargs=* PFdiff :!p4 diff % From 9cc164379b64b448ecfc55a8bf0c256d2893a113 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 31 Oct 2014 13:30:34 +0400 Subject: [PATCH 18/24] MG: some changes to environment. --- mg/cshrc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/mg/cshrc b/mg/cshrc index 915007f..f626e75 100644 --- a/mg/cshrc +++ b/mg/cshrc @@ -27,8 +27,12 @@ setenv PATH $PATH\:/user/icdet/bin:/user/icbuild/bin setenv PATH $PATH\:/user/pevtools/bin:/user/pevtools/$VCO/bin setenv PATH $PATH\:/usr/mgc/bin:/usr/mgc/lib/mgcms -setenv LD_LIBRARY_PATH /user/pevtools/$VCO/lib setenv PEVTOOLSBIN /user/pevtools/bin +if ( $?LD_LIBRARY_PATH ) then + setenv LD_LIBRARY_PATH /user/pevtools/$VCO/lib64\:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH /user/pevtools/$VCO/lib64 +endif # # MG development environment @@ -36,13 +40,15 @@ setenv PEVTOOLSBIN /user/pevtools/bin setenv CVSROOT :pserver:calcvs:/cvs/ic setenv BUILD64 1 -set cpu_count=`/user/icdet/bin/count_processors` +@ cpu_count = ( `/user/icdet/bin/count_processors` / 2 ) setenv PB "GMAKE_LIB_PARALLEL=-j$cpu_count GMAKE_SYSTESTS_PARALLEL=-j$cpu_count" setenv PB2 "GMAKE_EXEC_PARALLEL=-j"`/user/icdet/bin/figure_gmake_exec_ness` alias pmake 'gmake $PB $PB2' alias create_dwa 'source $HOME/devel/scripts/mg/create_dwa.csh' alias create_iwa 'source $HOME/devel/scripts/mg/create_iwa.csh' +#if ( -x /share/cal_daily/latest ) then +# setenv IWA /share/cal_nightly/latest if ( -x /share/cal_nightly/latest ) then setenv IWA /share/cal_nightly/latest else if ( -x /wv/cal_nightly/latest_ube ) then @@ -51,6 +57,8 @@ else if ( -x /sj/cal_nightly/latest_ube ) then setenv IWA /sj/cal_nightly/latest_ube endif +setenv CALIBRE_PRINT_STACK_TRACE 4242 + # # MG test environment (These are needed for terra) # @@ -58,9 +66,11 @@ endif #export MGC_HOME=/wv/icdet/work_areas/latest_ube/ic/ic_superproj/$VCO/Mgc_home/ #export MGC_BIN=$MGC_HOME/bin #export PATH=$MGC_BIN:$PATH +if ( -e /wv/pevtools/data_dir ) then + setenv DESIGN_DIR /wv/pevtools/data_dir +endif if ( -e /wv/calgrid/sge/default/common/settings.csh ) then - setenv DESIGN_DIR /user/pevtools/data_dir setenv DFM_TEST_BASE /wv/cal_dfm_qa/tot_master/calibre/dfm/rq/ setenv TEST_SUITE_TOP /wv/amy_dfm_qa/tot_master/calibre setenv CALIBRE_SKIP_OS_CHECKS 1 @@ -102,6 +112,7 @@ endif # setenv PATH $HOME/local_rh_x64/bin:$HOME/bin:$HOME/devel/scripts/mg:$HOME/devel/scripts/bash:$PATH setenv LD_LIBRARY_PATH $HOME/local_rh_x64/lib:$HOME/local_rh_x64/lib64\:$LD_LIBRARY_PATH +setenv EDITOR /home/vkhachat/local_rh_x64/bin/gvim # # ICWBEV @@ -114,3 +125,4 @@ alias oasis_info $HOME/local_rh_x64/private/fw/bin/oasis_info # alias cdw 'cd $HOME/devel/mg' alias setmgchome 'source $HOME/devel/scripts/mg/setmgchome.csh' +alias ptags 'ctags --recurse=yes --verbose -h ".h.C"' From f9b6e3fb4edccd545bb749a17252d8e7c661306b Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 31 Oct 2014 13:31:17 +0400 Subject: [PATCH 19/24] A try to turn off formating in git. --- vim/vimrc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/vim/vimrc b/vim/vimrc index 9da6dec..73990fe 100755 --- a/vim/vimrc +++ b/vim/vimrc @@ -114,10 +114,6 @@ if has('autocmd') autocmd FileType python setlocal expandtab endif -" P4 -command! -nargs=* PFedit :!p4 edit % -command! -nargs=* PFrevert :!p4 revert % -command! -nargs=* PFdiff :!p4 diff % " Only do this part when compiled with support for autocommands. if has("autocmd") @@ -183,6 +179,13 @@ function MyDiff() silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq endfunction +" Don't let vim be too smart. +set formatoptions=cql +" +" P4 +command! -nargs=* PFedit :!p4 edit % +command! -nargs=* PFrevert :!p4 revert % +command! -nargs=* PFdiff :!p4 diff % " " Loads CF5Compile " Compile and run file if Ctrl-F5 is pressed. From afdf5084af0e23f4106bc0ddda059cf1f2f61de3 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 31 Oct 2014 19:48:40 +0400 Subject: [PATCH 20/24] plugin files are moved to plugin directory. --- vim/{ => plugin}/cf5-compiler.vim | 0 vim/{ => plugin}/let-modeline.vim | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename vim/{ => plugin}/cf5-compiler.vim (100%) rename vim/{ => plugin}/let-modeline.vim (100%) diff --git a/vim/cf5-compiler.vim b/vim/plugin/cf5-compiler.vim similarity index 100% rename from vim/cf5-compiler.vim rename to vim/plugin/cf5-compiler.vim diff --git a/vim/let-modeline.vim b/vim/plugin/let-modeline.vim similarity index 100% rename from vim/let-modeline.vim rename to vim/plugin/let-modeline.vim From a81cae9995812e077a4a5f7fc462ed32d8f4b4c4 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 31 Oct 2014 22:29:28 +0400 Subject: [PATCH 21/24] Restore noexpandtab. --- vim/vimrc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/vim/vimrc b/vim/vimrc index 73990fe..5df0418 100755 --- a/vim/vimrc +++ b/vim/vimrc @@ -2,8 +2,14 @@ "source $VIMRUNTIME/mswin.vim "behave mswin -if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" - set fileencodings=utf-8,latin1 +if has("multi_byte") + if &termencoding == "" + let &termencoding = &encoding + endif + set encoding=utf-8 + setglobal fileencoding=utf-8 + "setglobal bomb + set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) @@ -16,7 +22,7 @@ set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set tabstop=4 " make tabes to be equal to 4 space chars. set shiftwidth=4 " for indentation shift by 4 chars. -set expandtab " this is for MG files. +set noexpandtab " don't expand tabs. For MG devel/mg/.vimrc sets expandtab. set softtabstop=4 " insert/ deletes 4 space chars. set smarttab " insert/ space in front of line instead of tab. set fileformat=unix " line ending is unix @@ -222,13 +228,11 @@ nnoremap td :tabclose if has("gui_running") colors darkblue " set color scheme - "set guifont=FreeMono:h12 set lines=50 set columns=85 - set encoding=utf-8 - "set fileencodings=utf-8 if has("win32") || has("win64") - set guifont=Courier\ AM:h12 + set guifont=FreeMono:h14:cANSI + "set guifont=Courier\ AM:h12 endif From b9c5f51b770629f0809851f632829c68152987af Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 31 Oct 2014 22:34:48 +0400 Subject: [PATCH 22/24] remove sourceing of cf5-opt.vim. I am going to replace it with local .vimrc --- vim/plugin/cf5-compiler.vim | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/vim/plugin/cf5-compiler.vim b/vim/plugin/cf5-compiler.vim index 1e35626..e8a475a 100755 --- a/vim/plugin/cf5-compiler.vim +++ b/vim/plugin/cf5-compiler.vim @@ -1,12 +1,16 @@ +" +" " {{{1 -" Functions to compile and link a single c/cpp file. +" Functions to compile and link a single c/cpp/java files. " " let g:cf5output " =0 - no output window opened. " =1 - ouput window opened. " -"if exists("g:loaded_vahagn_compiler") | finish | endif -let g:loaded_vahagn_compiler = 1 +if exists('g:loaded_cf5_compiler') + finish +endif +let g:loaded_cf5_compiler = 1 " " Make sure let-modeline.vim is loaded. @@ -212,13 +216,6 @@ function! CF5Compile(run) " call s:initDefaults() " - " Source compile-opt.vim if exists. - " - verbose let l:copt=expand("%:p:h")."/cf5-opt.vim" - if filereadable(l:copt) - exec ":source ".l:copt - endif - " " Set source specific compiler options. " call FirstModeLine() From 7127e48660591496ded989877a3d13571d6664a3 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Fri, 31 Oct 2014 22:55:17 +0400 Subject: [PATCH 23/24] local-vimrc.vim based on independence.vim --- vim/plugin/local-vimrc.vim | 54 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 vim/plugin/local-vimrc.vim diff --git a/vim/plugin/local-vimrc.vim b/vim/plugin/local-vimrc.vim new file mode 100644 index 0000000..0493b2c --- /dev/null +++ b/vim/plugin/local-vimrc.vim @@ -0,0 +1,54 @@ +" +" Authors: Vahagn Khachatryan (vahagn DOT khachatryan AT gmail DOT com) +" +" Licence: http://www.opensource.org/licenses/mit-license.php +" The MIT License +" +" This file is based on Andy Dawson's independence.vim +" +"----------------------------------------------------------------------------- +" +" Section: Documentation +" +" The vim local-vimrc plugin loads a .vimrc file from upper directories if +" it exists. This allows you to override your vim settings on a directory tree +" basis. + +" Section: Plugin header +" +" loaded_local_vimrc is set to 1 when initialization begins, and 2 when it +" completes. +if exists('g:loaded_locl_vimrc') + finish +endif +let g:loaded_local_vimrc=1 + +" Section: Event group setup +" Act when creating or loading a file +augroup LocalVimrc + au BufNewFile,BufRead * call s:LoadConfig() +augroup END + +" Function: LoadConfig() +" +" If the file .vimrc exists in the root of a git project - load it +function s:LoadConfig() + let l:path = fnameescape(expand("%:p:h")) + if empty(l:path) + return + endif + + let l:pathp = "" + while !filereadable(l:path.'/.vimrc') && l:pathp != l:path + let l:pathp = l:path + let l:path = fnamemodify(l:path, ":h") + endwhile + + let l:vimrc = l:path . '/.vimrc' + if filereadable(l:vimrc) && l:vimrc != $MYVIMRC + exec ":source " . l:vimrc + endif +endfunction + +" Section: Plugin completion +let g:loaded_local_vimrc=2 From e24d7dea7194f48c7e623f0a34adb2e4bb534cb8 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Thu, 6 Nov 2014 19:04:08 +0400 Subject: [PATCH 24/24] .gdbinit and STL container printers are added. --- gdb/gdbinit | 18 ++ gdb/print_stl | 680 +++++++++++++++++++++++++++++++++++++++++ gdb/print_stl_test.cpp | 47 +++ 3 files changed, 745 insertions(+) create mode 100644 gdb/gdbinit create mode 100644 gdb/print_stl create mode 100644 gdb/print_stl_test.cpp diff --git a/gdb/gdbinit b/gdb/gdbinit new file mode 100644 index 0000000..cd7c483 --- /dev/null +++ b/gdb/gdbinit @@ -0,0 +1,18 @@ +set disassembly-flavor intel +set confirm off +#set follow-fork-mode child +#set detach-on-fork off + +# +# C++ related beautifiers +# +set print pretty on +set print object on +#set print static-members on +set print vtbl on +set print demangle on +set demangle-style gnu-v3 +set print sevenbit-strings off + +source ~/devel/scripts/gdb/print_stl + diff --git a/gdb/print_stl b/gdb/print_stl new file mode 100644 index 0000000..76da9b6 --- /dev/null +++ b/gdb/print_stl @@ -0,0 +1,680 @@ +# +# STL GDB evaluators/views/utilities - 1.03 +# +# The new GDB commands: +# are entirely non instrumental +# do not depend on any "inline"(s) - e.g. size(), [], etc +# are extremely tolerant to debugger settings +# +# This file should be "included" in .gdbinit as following: +# source stl-views.gdb or just paste it into your .gdbinit file +# +# The following STL containers are currently supported: +# +# std::vector -- via pvector command +# std::list -- via plist or plist_member command +# std::map -- via pmap or pmap_member command +# std::multimap -- via pmap or pmap_member command +# std::set -- via pset command +# std::multiset -- via pset command +# std::deque -- via pdequeue command +# std::stack -- via pstack command +# std::queue -- via pqueue command +# std::priority_queue -- via ppqueue command +# std::bitset -- via pbitset command +# std::string -- via pstring command +# std::widestring -- via pwstring command +# +# The end of this file contains (optional) C++ beautifiers +# Make sure your debugger supports $argc +# +# Simple GDB Macros writen by Dan Marinescu (H-PhD) - License GPL +# Inspired by intial work of Tom Malnar, +# Tony Novac (PhD) / Cornell / Stanford, +# Gilad Mishne (PhD) and Many Many Others. +# Contact: dan_c_marinescu@yahoo.com (Subject: STL) +# +# Modified to work with g++ 4.3 by Anders Elton +# Also added _member functions, that instead of printing the entire class in map, prints a member. + + + +# +# std::vector<> +# +define pvector + if $argc == 0 + help pvector + else + set $size = $arg0._M_impl._M_finish - $arg0._M_impl._M_start + set $capacity = $arg0._M_impl._M_end_of_storage - $arg0._M_impl._M_start + set $size_max = $size - 1 + end + if $argc == 1 + set $i = 0 + while $i < $size + printf "elem[%u]: ", $i + p *($arg0._M_impl._M_start + $i) + set $i++ + end + end + if $argc == 2 + set $idx = $arg1 + if $idx < 0 || $idx > $size_max + printf "idx1, idx2 are not in acceptable range: [0..%u].\n", $size_max + else + printf "elem[%u]: ", $idx + p *($arg0._M_impl._M_start + $idx) + end + end + if $argc == 3 + set $start_idx = $arg1 + set $stop_idx = $arg2 + if $start_idx > $stop_idx + set $tmp_idx = $start_idx + set $start_idx = $stop_idx + set $stop_idx = $tmp_idx + end + if $start_idx < 0 || $stop_idx < 0 || $start_idx > $size_max || $stop_idx > $size_max + printf "idx1, idx2 are not in acceptable range: [0..%u].\n", $size_max + else + set $i = $start_idx + while $i <= $stop_idx + printf "elem[%u]: ", $i + p *($arg0._M_impl._M_start + $i) + set $i++ + end + end + end + if $argc > 0 + printf "Vector size = %u\n", $size + printf "Vector capacity = %u\n", $capacity + printf "Element " + whatis $arg0._M_impl._M_start + end +end +document pvector + Prints std::vector information. + Syntax: pvector + Note: idx, idx1 and idx2 must be in acceptable range [0...size()-1]. + Examples: + pvector v - Prints vector content, size, capacity and T typedef + pvector v 0 - Prints element[idx] from vector + pvector v 1 2 - Prints elements in range [idx1..idx2] from vector +end + +# +# std::list<> +# +define plist + if $argc == 0 + help plist + else + set $head = &$arg0._M_impl._M_node + set $current = $arg0._M_impl._M_node._M_next + set $size = 0 + while $current != $head + if $argc == 2 + printf "elem[%u]: ", $size + p *($arg1*)($current + 1) + end + if $argc == 3 + if $size == $arg2 + printf "elem[%u]: ", $size + p *($arg1*)($current + 1) + end + end + set $current = $current._M_next + set $size++ + end + printf "List size = %u \n", $size + if $argc == 1 + printf "List " + whatis $arg0 + printf "Use plist to see the elements in the list.\n" + end + end +end + +document plist + Prints std::list information. + Syntax: plist : Prints list size, if T defined all elements or just element at idx + Examples: + plist l - prints list size and definition + plist l int - prints all elements and list size + plist l int 2 - prints the third element in the list (if exists) and list size +end + +define plist_member + if $argc == 0 + help plist_member + else + set $head = &$arg0._M_impl._M_node + set $current = $arg0._M_impl._M_node._M_next + set $size = 0 + while $current != $head + if $argc == 3 + printf "elem[%u]: ", $size + p (*($arg1*)($current + 1)).$arg2 + end + if $argc == 4 + if $size == $arg3 + printf "elem[%u]: ", $size + p (*($arg1*)($current + 1)).$arg2 + end + end + set $current = $current._M_next + set $size++ + end + printf "List size = %u \n", $size + if $argc == 1 + printf "List " + whatis $arg0 + printf "Use plist_member to see the elements in the list.\n" + end + end +end + +document plist_member + Prints std::list information. + Syntax: plist : Prints list size, if T defined all elements or just element at idx + Examples: + plist_member l int member - prints all elements and list size + plist_member l int member 2 - prints the third element in the list (if exists) and list size +end + + +# +# std::map and std::multimap +# + +define pmap + if $argc == 0 + help pmap + else + set $tree = $arg0 + set $i = 0 + set $node = $tree._M_t._M_impl._M_header._M_left + set $end = $tree._M_t._M_impl._M_header + set $tree_size = $tree._M_t._M_impl._M_node_count + if $argc == 1 + printf "Map " + whatis $tree + printf "Use pmap to see the elements in the map.\n" + end + if $argc == 3 + while $i < $tree_size + set $value = (void *)($node + 1) + printf "elem[%u].left: ", $i + p *($arg1*)$value + set $value = $value + sizeof($arg1) + printf "elem[%u].right: ", $i + p *($arg2*)$value + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + end + if $argc == 4 + set $idx = $arg3 + set $ElementsFound = 0 + while $i < $tree_size + set $value = (void *)($node + 1) + if *($arg1*)$value == $idx + printf "elem[%u].left: ", $i + p *($arg1*)$value + set $value = $value + sizeof($arg1) + printf "elem[%u].right: ", $i + p *($arg2*)$value + set $ElementsFound++ + end + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + printf "Number of elements found = %u\n", $ElementsFound + end + if $argc == 5 + set $idx1 = $arg3 + set $idx2 = $arg4 + set $ElementsFound = 0 + while $i < $tree_size + set $value = (void *)($node + 1) + set $valueLeft = *($arg1*)$value + set $valueRight = *($arg2*)($value + sizeof($arg1)) + if $valueLeft == $idx1 && $valueRight == $idx2 + printf "elem[%u].left: ", $i + p $valueLeft + printf "elem[%u].right: ", $i + p $valueRight + set $ElementsFound++ + end + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + printf "Number of elements found = %u\n", $ElementsFound + end + printf "Map size = %u\n", $tree_size + end +end + +document pmap + Prints std::map or std::multimap information. Works for std::multimap as well. + Syntax: pmap : Prints map size, if T defined all elements or just element(s) with val(s) + Examples: + pmap m - prints map size and definition + pmap m int int - prints all elements and map size + pmap m int int 20 - prints the element(s) with left-value = 20 (if any) and map size + pmap m int int 20 200 - prints the element(s) with left-value = 20 and right-value = 200 (if any) and map size +end + + +define pmap_member + if $argc == 0 + help pmap_member + else + set $tree = $arg0 + set $i = 0 + set $node = $tree._M_t._M_impl._M_header._M_left + set $end = $tree._M_t._M_impl._M_header + set $tree_size = $tree._M_t._M_impl._M_node_count + if $argc == 1 + printf "Map " + whatis $tree + printf "Use pmap to see the elements in the map.\n" + end + if $argc == 5 + while $i < $tree_size + set $value = (void *)($node + 1) + printf "elem[%u].left: ", $i + p (*($arg1*)$value).$arg2 + set $value = $value + sizeof($arg1) + printf "elem[%u].right: ", $i + p (*($arg3*)$value).$arg4 + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + end + if $argc == 6 + set $idx = $arg5 + set $ElementsFound = 0 + while $i < $tree_size + set $value = (void *)($node + 1) + if *($arg1*)$value == $idx + printf "elem[%u].left: ", $i + p (*($arg1*)$value).$arg2 + set $value = $value + sizeof($arg1) + printf "elem[%u].right: ", $i + p (*($arg3*)$value).$arg4 + set $ElementsFound++ + end + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + printf "Number of elements found = %u\n", $ElementsFound + end + printf "Map size = %u\n", $tree_size + end +end + +document pmap_member + Prints std::map or std::multimap information. Works for std::multimap as well. + Syntax: pmap : Prints map size, if T defined all elements or just element(s) with val(s) + Examples: + pmap_member m class1 member1 class2 member2 - prints class1.member1 : class2.member2 + pmap_member m class1 member1 class2 member2 lvalue - prints class1.member1 : class2.member2 where class1 == lvalue +end + + +# +# std::set and std::multiset +# + +define pset + if $argc == 0 + help pset + else + set $tree = $arg0 + set $i = 0 + set $node = $tree._M_t._M_impl._M_header._M_left + set $end = $tree._M_t._M_impl._M_header + set $tree_size = $tree._M_t._M_impl._M_node_count + if $argc == 1 + printf "Set " + whatis $tree + printf "Use pset to see the elements in the set.\n" + end + if $argc == 2 + while $i < $tree_size + set $value = (void *)($node + 1) + printf "elem[%u]: ", $i + p *($arg1*)$value + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + end + if $argc == 3 + set $idx = $arg2 + set $ElementsFound = 0 + while $i < $tree_size + set $value = (void *)($node + 1) + if *($arg1*)$value == $idx + printf "elem[%u]: ", $i + p *($arg1*)$value + set $ElementsFound++ + end + if $node._M_right != 0 + set $node = $node._M_right + while $node._M_left != 0 + set $node = $node._M_left + end + else + set $tmp_node = $node._M_parent + while $node == $tmp_node._M_right + set $node = $tmp_node + set $tmp_node = $tmp_node._M_parent + end + if $node._M_right != $tmp_node + set $node = $tmp_node + end + end + set $i++ + end + printf "Number of elements found = %u\n", $ElementsFound + end + printf "Set size = %u\n", $tree_size + end +end + +document pset + Prints std::set or std::multiset information. Works for std::multiset as well. + Syntax: pset : Prints set size, if T defined all elements or just element(s) having val + Examples: + pset s - prints set size and definition + pset s int - prints all elements and the size of s + pset s int 20 - prints the element(s) with value = 20 (if any) and the size of s +end + + + +# +# std::dequeue +# + +define pdequeue + if $argc == 0 + help pdequeue + else + set $size = 0 + set $start_cur = $arg0._M_impl._M_start._M_cur + set $start_last = $arg0._M_impl._M_start._M_last + set $start_stop = $start_last + while $start_cur != $start_stop + p *$start_cur + set $start_cur++ + set $size++ + end + set $finish_first = $arg0._M_impl._M_finish._M_first + set $finish_cur = $arg0._M_impl._M_finish._M_cur + set $finish_last = $arg0._M_impl._M_finish._M_last + if $finish_cur < $finish_last + set $finish_stop = $finish_cur + else + set $finish_stop = $finish_last + end + while $finish_first != $finish_stop + p *$finish_first + set $finish_first++ + set $size++ + end + printf "Dequeue size = %u\n", $size + end +end + +document pdequeue + Prints std::dequeue information. + Syntax: pdequeue : Prints dequeue size, if T defined all elements + Deque elements are listed "left to right" (left-most stands for front and right-most stands for back) + Example: + pdequeue d - prints all elements and size of d +end + + + +# +# std::stack +# + +define pstack + if $argc == 0 + help pstack + else + set $start_cur = $arg0.c._M_impl._M_start._M_cur + set $finish_cur = $arg0.c._M_impl._M_finish._M_cur + set $size = $finish_cur - $start_cur + set $i = $size - 1 + while $i >= 0 + p *($start_cur + $i) + set $i-- + end + printf "Stack size = %u\n", $size + end +end + +document pstack + Prints std::stack information. + Syntax: pstack : Prints all elements and size of the stack + Stack elements are listed "top to buttom" (top-most element is the first to come on pop) + Example: + pstack s - prints all elements and the size of s +end + + + +# +# std::queue +# + +define pqueue + if $argc == 0 + help pqueue + else + set $start_cur = $arg0.c._M_impl._M_start._M_cur + set $finish_cur = $arg0.c._M_impl._M_finish._M_cur + set $size = $finish_cur - $start_cur + set $i = 0 + while $i < $size + p *($start_cur + $i) + set $i++ + end + printf "Queue size = %u\n", $size + end +end + +document pqueue + Prints std::queue information. + Syntax: pqueue : Prints all elements and the size of the queue + Queue elements are listed "top to bottom" (top-most element is the first to come on pop) + Example: + pqueue q - prints all elements and the size of q +end + + + +# +# std::priority_queue +# + +define ppqueue + if $argc == 0 + help ppqueue + else + set $size = $arg0.c._M_impl._M_finish - $arg0.c._M_impl._M_start + set $capacity = $arg0.c._M_impl._M_end_of_storage - $arg0.c._M_impl._M_start + set $i = $size - 1 + while $i >= 0 + p *($arg0.c._M_impl._M_start + $i) + set $i-- + end + printf "Priority queue size = %u\n", $size + printf "Priority queue capacity = %u\n", $capacity + end +end + +document ppqueue + Prints std::priority_queue information. + Syntax: ppqueue : Prints all elements, size and capacity of the priority_queue + Priority_queue elements are listed "top to buttom" (top-most element is the first to come on pop) + Example: + ppqueue pq - prints all elements, size and capacity of pq +end + + + +# +# std::bitset +# + +define pbitset + if $argc == 0 + help pbitset + else + p /t $arg0._M_w + end +end + +document pbitset + Prints std::bitset information. + Syntax: pbitset : Prints all bits in bitset + Example: + pbitset b - prints all bits in b +end + + + +# +# std::string +# + +define pstring + if $argc == 0 + help pstring + else + printf "String \t\t\t= \"%s\"\n", $arg0._M_data() + printf "String size/length \t= %u\n", $arg0._M_rep()._M_length + printf "String capacity \t= %u\n", $arg0._M_rep()._M_capacity + printf "String ref-count \t= %d\n", $arg0._M_rep()._M_refcount + end +end + +document pstring + Prints std::string information. + Syntax: pstring + Example: + pstring s - Prints content, size/length, capacity and ref-count of string s +end + +# +# std::wstring +# + +define pwstring + if $argc == 0 + help pwstring + else + call printf("WString \t\t= \"%ls\"\n", $arg0._M_data()) + printf "WString size/length \t= %u\n", $arg0._M_rep()._M_length + printf "WString capacity \t= %u\n", $arg0._M_rep()._M_capacity + printf "WString ref-count \t= %d\n", $arg0._M_rep()._M_refcount + end +end + +document pwstring + Prints std::wstring information. + Syntax: pwstring + Example: + pwstring s - Prints content, size/length, capacity and ref-count of wstring s +end + diff --git a/gdb/print_stl_test.cpp b/gdb/print_stl_test.cpp new file mode 100644 index 0000000..5b5aeb1 --- /dev/null +++ b/gdb/print_stl_test.cpp @@ -0,0 +1,47 @@ +//VIM: let g:lcppflags="-g --std=c++0x" +// +#include +#include +#include +#include +#include +#include + +int main() +{ + std::vector v; + v.push_back(10); + v.push_back(11); + v.push_back(12); + v.push_back(13); + + std::vector> v2; + v2.push_back(std::make_pair(23,34)); + v2.push_back(std::make_pair(3,4)); + v2.push_back(std::make_pair(423,534)); + + std::list> l; + l.push_back(std::make_pair(23,34)); + l.push_back(std::make_pair(3,4)); + l.push_back(std::make_pair(423,534)); + + std::deque> q; + q.push_back(std::make_pair(23,34)); + q.push_back(std::make_pair(3,4)); + q.push_back(std::make_pair(423,534)); + + std::map m; + m.insert(std::make_pair(23,34)); + m.insert(std::make_pair(3,4)); + m.insert(std::make_pair(423,534)); + + std::set> s; + s.insert(std::make_pair(23,34)); + s.insert(std::make_pair(3,4)); + s.insert(std::make_pair(423,534)); + + std::string str = "This is a string."; + +break_here: + return 0; +}