@Test
    void testShortcutsWeb() {
        tester.assertParsed("AND map new york", "map new york", Query.Type.WEB);

        AndItem root = (AndItem) tester.assertParsed("AND map!150 new york", "map! new york", Query.Type.WEB);
        assertEquals('!', ((WordItem) root.getItem(0)).getOrigin().charAfter(0));

        root = (AndItem) tester.assertParsed("AND barack obama news!150", "barack obama news!", Query.Type.WEB);
        assertEquals('!', ((WordItem) root.getItem(2)).getOrigin().charAfter(0));
    }
Shortcut terms are represented as any other terms, but can be rewritten downstream.
The information about added bangs is available from the origin as shown (do not use the weight to find this)
container-search/src/test/java/com/yahoo/prelude/query/parser/test/ParseTestCase.java