3 from IPython.core.inputtransformer
import InputTransformer
4 from IPython
import get_ipython
5 from IPython.core
import display
9 _cppDcl=re.compile(
"\s*\.cpp\s+-d")
10 _cppAclic=re.compile(
"\s*\.cpp\s+-a")
11 _bash=re.compile(
"\s*\.bash\d*")
24 >>> t = CppTransformer() 25 >>> t.push("int i=3;") 30 >>> t.push('int q(int i){return i+i;};') 34 >>> t.push(' .cpp -a\t\t ') 35 >>> t.push('int qq(int i){return i+i;};') 40 >>> t.push('int f(int i){return i+i;}') 45 >>> t.push('int ff(int i){return i+i;}') 49 >>> t.push('.bash echo Hello ') 52 >>> t.push(' \t .bash \t echo Hello ') 56 >>> t.push('echo Hello') 62 if line ==
"%s;"%fcnName
or line == fcnName:
64 elif _cppDcl.match(line)
and self.
cell ==
"":
66 elif _cppAclic.match(line)
and self.
cell ==
"":
68 elif _bash.match(line)
and self.
cell ==
"":
69 self.
cell += line.replace(
".bash",
"")+
"\n" 80 utils.declareCppCode(self.
cell)
83 utils.invokeAclic(self.
cell)
86 cellNoEndNewLine = self.
cell[:-1]
87 out = utils._checkOutput(cellNoEndNewLine,
"Error running shell command")
88 if out: sys.stdout.write(out)
91 utils.processCppCode(self.
cell)
97 cppcompleter.unload_ipython_extension(ip)
99 display.display_javascript(utils.jsDefaultHighlight.format(mimeType = utils.ipyMIME), raw=
True)
100 print "Notebook is in Python mode" 105 ipython.input_splitter.logical_line_transforms.remove(_transformer)
106 ipython.input_transformer_manager.logical_line_transforms.remove(_transformer)
109 ipython.input_splitter.logical_line_transforms.insert(0,_transformer)
110 ipython.input_transformer_manager.logical_line_transforms.insert(0,_transformer)